猿教程 Logo

3)URL重写

在URL重写中,我们将一个令牌或标识符附加到下一个Servlet或下一个资源的URL中。 我们可以使用以下格式发送参数键/值对:

url?name1 = value1&name2 = value2&??

名称和值使用等号符号分隔,参数名称/值对与另一个参数使用符号(&)分隔。 当用户单击超链接时,参数名称/值对将被传递到服务器。 在Servlet中,我们可以使用getParameter()方法来获取参数值。



URL重写的优点

  1. 它将始终工作,无论是否禁用cookie(与浏览器无关)。
  2. 每页上不需要提交额外表格。

URL重写的缺点

  1. 它只与链接工作。

  2. 它只能发送文本信息。


使用URL重写的示例

在这个例子中,我们正在维护用户使用链接的状态。 为此,我们在查询字符串中追加用户的名称,并从另一个页面的查询字符串中获取值。


index.html

<form action="servlet1">
Name:<input type="text" name="userName"/><br/>
<input type="submit" value="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='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>


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Servlet/url-rewriting-in-session-tracking.html