URL重写是一种会话跟踪技术,是web服务器状态4种技术保持之一。
限制:
1.字符长都有限制;
2.静态页面很难传值;
3.URL重写需要在服务器上完成所有链接都必须带值,当页面连接很多时将会是一个不小的挑战;
4.所有信息都是可见的,安全性不高。
形式如下:url?key=value
例如:<a href='?city=london'>London</a>
package url;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="rwUrl",urlPatterns= {"/url"})
public class rwUrl extends HttpServlet{
/**
* url重写
*/
private static final long serialVersionUID = 1L;
private List<String> london=null;
private List<String> pari=null;
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建打印对象
String city=req.getParameter("city");
System.out.println(city);
if(city!=null&&(city.equals("london")||city.equals("pari"))) {
showpage(req,resp,city);
}else {
mainPag(req,resp);
}
}
//创建其他页面
private void showpage(HttpServletRequest req, HttpServletResponse resp, String city) throws IOException {
PrintWriter pw=resp.getWriter();
System.out.println("你是谁??");
List<String> citys;
String city_select;
if(city.equals("london")) {
citys=london;
city_select="london";
}else {
citys=pari;
city_select="pari";
}
pw.println("<html><head></head><body>"+city_select);
for (String string : citys) {
pw.println(
"</br>"
+string
);
}
pw.println("</body></html>");
}
//创建主页
private void mainPag(HttpServletRequest req, HttpServletResponse resp) {
PrintWriter pw;
try {
pw = resp.getWriter();
resp.setContentType("text/html");
pw.println("<html><head><head><body>"
+"please select city:"
+ "<a href='?city=london'>London</a>"
+"</br>"
+ "<a href='?city=pari'>Pari</a>"
+ "</body></html>");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void init() throws ServletException {
System.out.println("servlet启动");
london=new ArrayList<String>();
london.add("London eye");
london.add("Big Ben");
london.add("palace");
pari=new ArrayList<String>();
pari.add("arc de");
pari.add("Notre Dame");
}
}

850

被折叠的 条评论
为什么被折叠?



