Servlet会话追踪(URL重写)

  1. URL重写
  2. URL重写的优势
  3. URL重写的缺点
  4. URL重写示例
在URL重写中, 我们将标记或标识符附加到下一个Servlet或下一个资源的URL。我们可以使用以下格式发送参数名称/值对:
url?name1 = value1&name2 = value2&??
名称和值之间用等号分隔, 参数名称/值对与另一个参数之间使用&符号分隔。当用户单击超链接时, 参数名称/值对将被传递到服务器。在Servlet中, 我们可以使用getParameter()方法来获取参数值。
Servlet会话追踪(URL重写)

文章图片
URL重写的优势
  1. 无论是否禁用cookie(与浏览器无关), 它将始终有效。
  2. 不需要在每个页面上提交额外的表单。
URL重写的缺点
  1. 它仅适用于链接。
  2. 它只能发送文本信息。
使用URL重写的示例
在此示例中, 我们使用链接维护用户的状态。为此, 我们将用户名附加在查询字符串中, 并从另一页的查询字符串中获取值。
index.html
< form action="servlet1"> Name:< input type="text" name="userName"/> < br/> < input type="submit" value="http://www.srcmini.com/go"/> < /form>

FirstServlet.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class FirstServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response){ try{response.setContentType("text/html"); PrintWriter out = response.getWriter(); String n=request.getParameter("userName"); out.print("Welcome "+n); //appending the username in the query string out.print("< a href='http://www.srcmini.com/servlet2?uname="+n+"'> visit< /a> "); out.close(); }catch(Exception e){System.out.println(e); } }}

SecondServlet.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SecondServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) try{response.setContentType("text/html"); PrintWriter out = response.getWriter(); //getting value from the query string String n=request.getParameter("uname"); out.print("Hello "+n); out.close(); }catch(Exception e){System.out.println(e); } } }

web.xml
< web-app> < servlet> < servlet-name> s1< /servlet-name> < servlet-class> FirstServlet< /servlet-class> < /servlet> < servlet-mapping> < servlet-name> s1< /servlet-name> < url-pattern> /servlet1< /url-pattern> < /servlet-mapping> < servlet> < servlet-name> s2< /servlet-name> < servlet-class> SecondServlet< /servlet-class> < /servlet> < servlet-mapping> < servlet-name> s2< /servlet-name> < url-pattern> /servlet2< /url-pattern> < /servlet-mapping> < /web-app>

下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
【Servlet会话追踪(URL重写)】下载此示例(使用Netbeans IDE开发)

    推荐阅读