效果图:
代码:
index3.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${msg}
<form action="/logon2" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"/><br/>
<input type="submit" value="登录"/>
</form>
</body>
</html>
<%session.invalidate(); %>
main.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎${USER_IN_SESSION.username}登录本系统,<a href="/index3.jsp">退出</a></h1>
<hr>
<center><h2>商品列表</h2></center>
</body>
</html>
User.java:
package text.session.bean;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public User() {
}
}
IUserDao.java(接口):
package text.session.dao;
import text.session.bean.User;
public interface IUserDao {
User selectByUsernameAndPassword(String username,String password);
}
UserDaoImpl.java:
package text.session.dao.impl;
import text.session.bean.User;
import text.session.dao.IUserDao;
public class UserDaoImpl implements IUserDao {
public User selectByUsernameAndPassword(String username, String password) {
//查询数据库
if("rose".equals(username) && "123".equals(password)){
User user = new User("rose","123");
return user;
}
return null;
}
}
IUserService.java(接口):
package text.session.service;
import text.session.bean.User;
public interface IUserService {
User Login(String username,String password);
}
UserServiceImpl.java:
package text.session.service.impl;
import text.session.bean.User;
import text.session.dao.IUserDao;
import text.session.dao.impl.UserDaoImpl;
import text.session.service.IUserService;
public class UserServiceImpl implements IUserService {
private IUserDao dao = new UserDaoImpl();
public User Login(String username, String password) {
return dao.selectByUsernameAndPassword(username, password);
}
}
LogonServlet.java:
package text.session.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import text.session.bean.User;
import text.session.service.IUserService;
import text.session.service.impl.UserServiceImpl;
@WebServlet("/logon2")
public class LogonServlet extends HttpServlet{
private IUserService service = new UserServiceImpl();
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求的参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//调用业务的方法
User user = service.Login(username, password);
//控制页面的跳转
if(user!=null) {
//把用户逇信息,存入session的作用域
HttpSession session = req.getSession();
session.setAttribute("USER_IN_SESSION", user);
resp.sendRedirect("/main");
}else {
req.setAttribute("msg", "用户名或者密码错误!!");
req.getRequestDispatcher("/index3.jsp").forward(req, resp);
}
}
}
ProductServlet.java:
package text.session.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/main")
public class ProductServlet extends HttpServlet{
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//判断用户是否登录
//判断Session的作用域中是否有“USER_IN_SESSION” 的值
HttpSession session = req.getSession();
Object object = session.getAttribute("USER_IN_SESSION");
if(object == null) {
resp.sendRedirect("/index3.jsp");
return;
}
req.getRequestDispatcher("/main.jsp").forward(req, resp);
}
}