JSP与Servlet间数据传输(session登录注销)

java 专栏收录该内容
125 篇文章 0 订阅

首先是项目结构:
项目结构

登录和注销用的就是LoginServlet.java和LogoutServlet.java两个文件来处理 所以首先要去配置一下web.xml

web.xml

<!-- 配置LoginServlet -->
<servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.demo.test.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>

  <!-- 配置LogoutServlet -->
  <servlet>
    <servlet-name>LogoutServlet</servlet-name>
    <servlet-class>com.demo.test.LogoutServlet</servlet-class>
  </servlet>
   <servlet-mapping>
    <servlet-name>LogoutServlet</servlet-name>
    <url-pattern>/LogoutServlet</url-pattern>
  </servlet-mapping>

1、<servlet-name>这个可以自己定义 你想用什么名都可以
2、<servlet><servlet-mapping>里面的<servlet-name>要一致
3、<servlet-class>是你java文件的位置
4、<url-pattern>这里也要跟<servlet-name>一致 格式:用这个java的文件的路径+/+<servlet-name>里面的name  如:要用LoginServlet的jsp在WebContent下的aaa文件夹里面 那么<url-pattern>里面就要填/aaa/LoginServlet

login.jsp

<html>
  <head>
    <title>login.html</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset = "UTF-8">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
  <body>
    <form action="LoginServlet" method="post">
                姓名<input text="text" name="username"><br/><br/>
        密码<input text="password" name="password"><br/><br/>
    <input type="submit" value="提交™†">
    </form>
    <a href="/Sessionlogin/index.jsp">Index</a>
  </body>
</html>

index.jsp

<%@page import="com.demo.test.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<jsp:useBean id="user" scope="session" class="com.demo.test.User" />
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>index.jsp</title>
    <mate http-equiv="content-type" content="text/html;charset=UTF-8">
  </head>

  <body>
  <%
  if(user.getUsername()!=null){
    System.out.println(user.getUsername());
    out.println("欢迎" + user.getUsername() + "登录<br><br>");
  }else{
    out.println("没登录user<br><br>");
  }
  %>
     <br/>
        <a href="/Sessionlogin/login.jsp">HOME</a>
        <a href="LogoutServlet">Logout</a>
  </body>
</html>

LoginServlet.java

import java.io.IOException;  
import java.io.PrintWriter;  
import java.util.ArrayList;  
import java.util.List;  


import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  

//用户登录 
public class LoginServlet extends HttpServlet {  

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        response.setCharacterEncoding("UTf-8");  
        response.setContentType("text/html;charset=UTF-8");  
        PrintWriter out=response.getWriter();  

       String username=request.getParameter("username");    
       String password=request.getParameter("password");  

       List<User> list = Db.getAll();

       for(User user:list){  
           if(user.getUsername().equals(username)&&user.getPassword().equals(password)){  
               request.getSession().setAttribute("user", user);//登陆成功,向session中存入一个登陆标记 user 
               response.sendRedirect("/Sessionlogin/index.jsp");        
               return;  
           }  
       }  
       out.write("用户名或者密码错误!<br><br><a href='login.jsp'>HOME</a>");
    }  

    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {  
        doGet(request,response);  
    }  


}  

LogoutServlet.java

import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//用户注销
public class LogoutServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        HttpSession session=request.getSession(false);
        if(session==null){
            response.sendRedirect("/Sessionlogin/login.jsp");
            return;
        }
        session.removeAttribute("user");//注销的在这里注销
        response.sendRedirect("/Sessionlogin/login.jsp");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
       doGet(request,response);
    }
}

剩下的User.java和Db.java没什么好写的 无非就是username和password的getting/setting方法 然后DB就是把数据压入list里面 然后return个list就好了

大概就这样了 重点是web.xml的配置 这个配置有点神经 写错点什么地方 就会程序没反应 所以要注意点写
至于session 就是看LoginServlet里面的request.getSession().setAttribute(“user”, user);
还有 LogoutServlet里面的session.removeAttribute(“user”);
一个是创建一个key为user的session 另外一个是注销掉key为user的那个session

附件:http://download.csdn.net/detail/qq_22778717/9636887

  • 1
    点赞
  • 0
    评论
  • 9
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

ouyuyao

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值