博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet session管理的四种方式--一 url重写
阅读量:4981 次
发布时间:2019-06-12

本文共 3353 字,大约阅读时间需要 11 分钟。

servlet对于多页面共享信息提供四种方式。

1.url重写的方式

    在下面的例子中,每一次请求都通过doGet方法进行“分流”。

    如果在网址中含有参数city且不为空,就调用showAttribute()方法下所包含的servlet页面,如果没有该参数或该参数对应值为空,则调用mainPage()方法下的页面。

if (request.getParameter("city") != null){..............showAttribute(request, response, city, page);}esle showMainPage(request, response)

     在执行showMainPage()方法中,可以通过选择选项,进行url重写

     选择不同的选项,其后添加??city=london&page=1或者?city=pairs&page=1,url改写为localhost:8080/Rewrite?city=london&page=1或localhost:8080/Rewrite?city=pairs&page=1重新调用doGet方法,因为其含有city参数且不为空,不再调用showMainpage()方法,改为调用showAttribute(request, response, city, page)方法,实现了多页面共享信息的目的。

pw.println("select a city"				 + "

london

" + "

pairs

" + "");

 

import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;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("/Rewrite")public class Rewrite extends HttpServlet {	private static final long serialVersionUID = 1L;    public Rewrite() {        super();    }        ArrayList
londonAttr = new ArrayList<>(10); ArrayList
pairsAttr = new ArrayList<>(10); public void init() throws javax.servlet.ServletException{ for( int i = 0; i < 10; i++) { londonAttr.add("l " + (i+1)); } for( int i = 0; i < 10; i++) { pairsAttr.add("p " + (i+1)); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getParameter("city") != null) { System.out.println("attribute"); String city = request.getParameter("city"); int page = 1; int p = 1; if (request.getParameter("page") != null){ try { p = Integer.parseInt(request.getParameter("page")); //showAttribute(request, response, city, page); }catch (NumberFormatException e) {} } page = p; showAttribute(request, response, city, page); }else showMainPage(request, response); } public void showMainPage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("
select a city" + "

london

" + "

pairs

" + ""); } public void showAttribute(HttpServletRequest request, HttpServletResponse response, String city, int page) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("" + city +"" + "
"); if(city.equals("london")) { for (int i = 5 * (page-1) ; i < 5 * (page-1) + 5; i++) { pw.println("
"); } }else if(city.equals("pairs")) { for (int i = 5 * (page-1) ; i < 5 * (page-1) + 5; i++) { pw.println("
"); } } pw.println("
" + londonAttr.get(i) + "
" + pairsAttr.get(i) + "
"); if(page == 1) pw.println("next
"); if(page == 2) pw.println("pass
"); pw.println("city list"); pw.println(""); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}

 

转载于:https://www.cnblogs.com/slowalker-lee/p/7868183.html

你可能感兴趣的文章
九涯的第一次
查看>>
处理器管理与进程调度
查看>>
向量非零元素个数_向量范数详解+代码实现
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
mysql sin() 函数
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
3-day3-list-truple-map.py
查看>>
Edit控件显示多行文字
查看>>
JS第二周
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
迭代dict的value
查看>>
eclipse package,source folder,folder区别及相互转换
查看>>
Py 可能是最全面的 python 字符串拼接总结(带注释版)
查看>>
《Java程序设计实验》 软件工程18-1,3 OO实验2
查看>>
【Herding HDU - 4709 】【数学(利用叉乘计算三角形面积)】
查看>>
OPENSSL使用方法
查看>>