JavaWeb URL重写和会话跟踪
package com.xzit.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; /** * Servlet implementation class UrlRewriteServlet */ @WebServlet("/servlet/UrlRewriteServlet") public class UrlRewriteServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("username"); String pwd = request.getParameter("password"); if(name.equals("admin") && pwd.equals("111111")) { HttpSession session = request.getSession(); session.setAttribute("username", name); String sessId = session.getId(); //获取会话的唯一标识 System.out.println("当前会话的id:"+sessId); String newUrl = "welcome.jsp"; //被重写的url String rewriteUrl = response.encodeRedirectURL(newUrl); /* 获取当前应用程序的部署发布url全名称 */ String http = request.getScheme(); String ip = request.getServerName(); int port = request.getServerPort(); String path = request.getContextPath(); String contextFullPath = http+"://"+ip+":"+port+path+"/"; System.out.println("发布应用程序全名称:"+contextFullPath); //request.getRequestDispatcher(contextFullPath+rewriteUrl).forward(request, response); response.sendRedirect(contextFullPath+"jsp/"+rewriteUrl); }else { response.sendRedirect("index.jsp?message=failed&info=login failed"); } } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="servlet/UrlRewriteServlet" method="post"> 用户名称:<input name="username"><br> 用户密码:<input name="password" type="password"><br> 用户名称:<input type="submit" value="登录"><br> </form> <% String m = request.getParameter("message"); String info = request.getParameter("info"); if(m != null && m.equals("failed")){ %> <span style="color:red"> 系统提示:<%=info %></span> <%} %> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 当前用户名称:${sessionScope.username} </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>UrlRewrite</display-name> <session-config> <session-timeout>5</session-timeout> </session-config> <!-- <servlet> --> <!-- <servlet-name>urlServlet</servlet-name> --> <!-- <servlet-class>com.xzit.servlet.UrlRewriteServlet</servlet-class> --> <!-- </servlet> --> <!-- <servlet-mapping> --> <!-- <servlet-name>urlServlet</servlet-name> --> <!-- <url-pattern>/UrlRewriteServlet</url-pattern> --> <!-- </servlet-mapping> --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~