标签:BMI where load gets password cti att type lex
public class User {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
}
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mvctest?useSSL=true&useUnicode=true&characterEncoding=utf-8
username=root
password=root
BaseDao
public class BaseDao {
private static String driver;
private static String url;
private static String username;
private static String password;
//静态代码块
static {
try {
Properties properties = new Properties();
InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");
properties.load(is);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
//连接数据库的方法
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
//查询数据库的方法
public static ResultSet execute(Connection connection, PreparedStatement pstt,ResultSet rs,String sql,Object[] params) throws SQLException {
pstt = connection.prepareStatement(sql);
for ( int i = 0; i < params.length; i++ ) {
pstt.setObject(i+1,params[i]);
}
rs = pstt.executeQuery();
return rs;
}
//关闭数据源
public static boolean closeResource(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet) {
boolean flag = true;
if ( resultSet != null ) {
try {
resultSet.close();
resultSet = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
if ( preparedStatement != null ) {
try {
preparedStatement.close();
preparedStatement = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
if ( connection != null ) {
try {
connection.close();
connection = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
return flag;
}
}
Constant
public class Constant {
public static final String USER_SESSION = "userSession";
}
public class ChrasetEncodingFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
filterChain.doFilter(request,response);
}
public void destroy() {
}
}
**配置过滤器的xml **
<filter>
<filter-name>ChrasetEncodingFilter</filter-name>
<filter-class>com.cc.filter.ChrasetEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ChrasetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
public interface UserDao {
public User loginUser(Connection connection,String username,String password) throws SQLException;
}
实现类
public class UserDaoImpl implements UserDao{
public User loginUser(Connection connection, String username, String password) throws SQLException {
PreparedStatement pstt = null;
ResultSet rs = null;
User user = null;
if ( connection != null ) {
String sql = " select * from people where username = ? and password = ?";
Object[] params = {username,password};
rs = BaseDao.execute(connection, pstt, rs, sql, params);
if ( rs.next() ) {
user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
BaseDao.closeResource(null,pstt,rs);
}
return user;
}
}
public interface UserService {
public User findUserNameandPassword(String username,String password);
}
实现类
public class UserServiceImpl implements UserService{
//调用dao层
private UserDao userDao;
public UserServiceImpl() {
userDao = new UserDaoImpl();
}
public User findUserNameandPassword(String username, String password) {
Connection connection = null;
User user = null;
try {
connection = BaseDao.getConnection();
user = userDao.loginUser(connection, username, password);
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeResource(connection,null,null);
}
return user;
}
}
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
req.setAttribute("name", username);
UserService userService = new UserServiceImpl();
User user = userService.findUserNameandPassword(username, password);
if (user != null) {
req.getSession().setAttribute(Constant.USER_SESSION, user);
resp.sendRedirect("/sys/success.jsp");
} else {
req.getRequestDispatcher("/error.jsp").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
配置xml
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.cc.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录界面</title>
</head>
<body>
<div style="text-align: center">
<h1>个人信息登录</h1>
<form action="${pageContext.request.contextPath}/login" method="post">
<div>
<label>用户名:</label>
<input type="text" name="username" placeholder="请输入用户名">
</div>
<div>
<label>密码:</label>
<input type="password" name="password" placeholder="请输入密码">
</div>
<div>
<input type="submit" value="登录">
</div>
</form>
</div>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>${sessionScope.userSession.username},欢迎您</h1>
<p><a href="/logout">注销</a> </p>
</body>
</html>
public class SysFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
Object session = request.getSession().getAttribute(Constant.USER_SESSION);
if ( session == null ) {
response.sendRedirect("/login.jsp");
}
filterChain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
配置xml
<filter>
<filter-name>SysFilter</filter-name>
<filter-class>com.cc.filter.SysFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SysFilter</filter-name>
<url-pattern>/sys/*</url-pattern>
</filter-mapping>
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Object session = req.getSession().getAttribute(Constant.USER_SESSION);
if ( session != null ) {
req.getSession().removeAttribute(Constant.USER_SESSION);
resp.sendRedirect("/login.jsp");
} else {
resp.sendRedirect("/login.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
配置xml
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.cc.servlet.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>失败界面</title>
</head>
<body>
<h1>抱歉,${requestScope.name}没有权限访问</h1>
<p><a href="login.jsp">返回首页</a></p>
</body>
</html>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
数据库数据如下:
效果如下:
首页
输入正确的用户名和密码时:
注销后再访问 sys/success.jsp 访问失败
输入正确的用户名和错误的密码时:
输入错误的用户名和密码时:
标签:BMI where load gets password cti att type lex
原文地址:https://www.cnblogs.com/duoruic/p/14887734.html