URL重写

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");
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值