从登陆页面登录成功后来到专家浏览页面,同时在会话session中创建三个属性,分别保存用户名、点击浏览的专家id和浏览的专家记录数。

(假设合法用户信息为:张三,123456)

制作处理登录的Servlet,即我这里的ZjllServlet;

我创建的第一个servlet名字叫做ZjllServlet,用于获取用户从登录页面输入的用户名和密码,下面的代码并不是全文的代码,而是文件ZjllServlet.java文件中的doGet方法中的代码,因为每个人创建的包名以及方法个数不同:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());String yonghu=request.getParameter("yonghu");String mima=request.getParameter("mima");if (yonghu.equals("张三") && mima.equals("123456")) {  //如果用户名为admin,且密码为123456登陆成功页面HttpSession session=request.getSession();//获取sessionsession.setAttribute("yonghu",yonghu);session.setAttribute("id","");session.setAttribute("number",0);String URL=response.encodeURL("Zjll");response.sendRedirect(URL);} else {response.sendRedirect("error.html");  //返回错误页面}}

从上面的代码中可以看见我们写了一个名叫Zjll的URL,这个和web.xml中的配置有关,需要和下面红框的部分保持一致的名字,并且通过Zjll重定向到另一个servlet页面中,下面的就是web.xml中的这一部分的配置文件:

<servlet><servlet-name>Zjll</servlet-name><servlet-class>edu.servlet.request.JiluServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>Zjll</servlet-name><url-pattern>/Zjll</url-pattern>
</servlet-mapping>

然后需要另一个servlet,我命的名叫做JiluServlet.java,就是登陆成功后使用session的setAttribute方法将用户名yonghu、点击浏览的专家mima(初始值为空字符串)和浏览专家数number(初始值为0)放入会话中:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());request.setCharacterEncoding("UTF-8");  //中文乱码的处理response.setContentType("text/html;charset=UTF-8");PrintWriter out=response.getWriter();String[] dep= {"皮肤科","妇产科","神经内科","泌尿外科"};String[][] images= {{"人像1.jpg","人像2.jpg","人像3.jpg","人像4.jpg"},{"人像4.jpg","人像1.jpg","人像2.jpg","人像3.jpg"},{"人像4.jpg","人像3.jpg","人像2.jpg","人像1.jpg"},{"人像4.jpg","人像2.jpg","人像3.jpg","人像1.jpg"}};String[][] names= {{"张三","李四","王五","敖某"},{"呆呆","wq","vvq","邓某"},{"邓三","冷少","铁蛋","铁柱"},{"刘某","梁某","冷某","敖二"}};HttpSession session=request.getSession();if (session.getAttribute("yonghu").equals("张三")) {String recURL=response.encodeURL("rec");String backURL=response.encodeURL("back");out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<meta charset=\'UTF-8\'>");out.println("<title>科室专家</title>");out.println("<link rel=\'stylesheet\' type=\'text/css\' href=\'erjidaohanglan.css\'>");out.println("<body bgcolor=\"lightblue\"></body>");out.println("</head>");out.println("<body>");out.println("<div class=\'top\'>欢迎光临,"+session.getAttribute("yonghu").toString()+"!&nbsp;&nbsp;&nbsp;&nbsp;您目前<a href=\""+recURL+"\">浏览的专家记录为:&nbsp;&nbsp;"+session.getAttribute("number").toString()+"&nbsp;&nbsp;条</a>"+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\""+backURL+"\">退出</a></div>");out.println("<div class=\'content\'>");for (int k=0;k<=3;k++) {out.println("<div class=\"ti\">"+dep[k]+"</div>");int len=images[k].length;int rows=(len%4==0)?len/4:len/4+1;for (int i=0;i<rows;i++) {out.println("<div class=\"clearfix\">");for (int j=0;j<=3;j++) {int c=i*4+j;if (c<=len-1) {String einf="einf?pid="+k+"&eid="+c;String einfURL=response.encodeURL(einf);out.println("<div class=\"img-container\">");out.println("<a href=\""+einfURL+"\"><img src=\"image/"+images[k][c]+"\"></a>");out.println("<p><a href=\""+einfURL+"\">"+names[k][c]+"</a></p>");out.println("</div>");  } else { break;}}out.println("</div>");out.println("<hr>");}}out.println("</body>");out.println("<html>");out.flush();out.close();} else {response.sendRedirect("denglu.html");return;}}

上面的代码所展现出来的页面如下图:

上面的代码中有一个einf,用于点击图片或者文字跳转到另一个页面也就是单人介绍的页面DanrenServlet,所以需要在web.xml中配置该路径:

   <servlet><servlet-name>einf</servlet-name><servlet-class>edu.servlet.request.DanrenServlet</servlet-class></servlet><servlet-mapping><servlet-name>einf</servlet-name><url-pattern>/einf</url-pattern></servlet-mapping>

配置该路径之后随意点击一个图片或者名字,都会进入下一个页面DanrenServlet:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());request.setCharacterEncoding("UTF-8");  //中文乱码的处理response.setContentType("text/html;charset=UTF-8");PrintWriter out=response.getWriter();String[] dep= {"皮肤科","妇产科","神经内科","泌尿外科"};String[][] images= {{"人像1.jpg","人像2.jpg","人像3.jpg","人像4.jpg"},{"人像4.jpg","人像1.jpg","人像2.jpg","人像3.jpg"},{"人像4.jpg","人像3.jpg","人像2.jpg","人像1.jpg"},{"人像4.jpg","人像2.jpg","人像3.jpg","人像1.jpg"}};String[][] names= {{"张三","李四","王五","敖某"},{"呆呆","wq","vvq","邓某"},{"邓三","冷少","铁蛋","铁柱"},{"刘某","梁某","冷某","敖二"}};String[][] info= {{"皮肤科教授,主任医师,博士,博士生导师,现任重庆医科大学附属第一医院皮肤科主任;中国现任医学会皮肤科科长,市先进人才。","皮肤科教授,主任医师,博士,博士生导师,现任重庆医科大学附属第一医院皮肤科主任;中国现任医学会皮肤科科长,市先进人才。","皮肤科教授,主任医师,博士,博士生导师,现任重庆医科大学附属第一医院皮肤科主任;中国现任医学会皮肤科科长,市先进人才。","皮肤科教授,主任医师,博士,博士生导师,现任重庆医科大学附属第一医院皮肤科主任;中国现任医学会皮肤科科长,市先进人才。"},{"张三","李四","王五","敖某"},{"邓三","冷少","铁蛋","铁柱"},{"刘某","梁某","冷某","敖二"}};HttpSession session=request.getSession();if(session.getAttribute("yonghu").equals("张三")) {String pid=request.getParameter("pid");String eid=request.getParameter("eid");String nid=pid+eid;String oid=(String)session.getAttribute("id");if(oid.indexOf(nid)==-1) {int number=(int)session.getAttribute("number")+1;session.setAttribute("number",number);if(!"".equals(oid)) {nid=oid+","+nid;}session.setAttribute("id",nid);}String recURL=response.encodeURL("rec"); String backURL=response.encodeURL("back"); String URL=response.encodeURL("Zjll");out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<meta charset=\"UTF-8\">");out.println("<title>显示科室专家</title>");out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"erjidaohanglan.css\">");out.println("<body bgcolor=\"lightblue\"></body>");out.println("</head>");out.println("<body>");out.println("<div class=\"top\">欢迎光临,"+session.getAttribute("yonghu").toString()+"!&nbsp;&nbsp;&nbsp;&nbsp;您目前<a href=\"" +recURL +"\">浏览的专家记录为:&nbsp;&nbsp;"+session.getAttribute("number").toString()+"&nbsp;&nbsp;条</a>"+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"" +backURL +"\">退出</a></div><hr>");out.println("<div class=\"content\">");out.println("<h2>科室:"+dep[Integer.parseInt(pid)]+"&nbsp;&nbsp;&nbsp;&nbsp;姓名:"+names[Integer.parseInt(pid)][Integer.parseInt(eid)]+"</h2>");out.println("<hr><p class=\"back\"><a href=\"" +URL +"\">&lt;&lt;&lt;返回</a></p>");out.println("<img src=\"image/"+images[Integer.parseInt(pid)][Integer.parseInt(eid)]+"\">");out.println("<p class=\"info\">"+info[Integer.parseInt(pid)][Integer.parseInt(eid)]+"</p></div>");out.println("</body>");out.println("</html>");out.flush();out.close();}else {response.sendRedirect("denglu.html");return;}}

然后这个页面所出来的成果就是如图:

接下来我们要展示的页面就是浏览历史记录的页面,即LljlServlrt.java;

首先使用rec对页面进行跳转,每一个页面中点击浏览的链接都是进入到浏览历史的界面:

   <servlet><servlet-name>rec</servlet-name><servlet-class>edu.servlet.request.LljlServlet</servlet-class></servlet><servlet-mapping><servlet-name>rec</servlet-name><url-pattern>/rec</url-pattern></servlet-mapping>

然后用下面的代码进行输出页面:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());request.setCharacterEncoding("UTF-8");  //中文乱码的处理response.setContentType("text/html;charset=UTF-8");PrintWriter out=response.getWriter();String[] dep= {"皮肤科","妇产科","神经内科","泌尿外科"};String[][] images= {{"人像1.jpg","人像2.jpg","人像3.jpg","人像4.jpg"},{"人像4.jpg","人像1.jpg","人像2.jpg","人像3.jpg"},{"人像4.jpg","人像3.jpg","人像2.jpg","人像1.jpg"},{"人像4.jpg","人像2.jpg","人像3.jpg","人像1.jpg"}};String[][] names= {{"张三","李四","王五","敖某"},{"呆呆","wq","vvq","邓某"},{"邓三","冷少","铁蛋","铁柱"},{"刘某","梁某","冷某","敖二"}};HttpSession session=request.getSession();if (session.getAttribute("yonghu").equals("张三")) {String recURL = response.encodeURL("rec");String backURL = response.encodeURL("back");String URL = response.encodeURL("Zjll");out.println("<!DOCTYPE html><html><head><meta charset=\"UTF-8\">");out.println("<title>显示科室专家</title>");out.println("<body bgcolor=\"lightblue\"></body>");out.println("<link type=\"text/css\" rel=\"stylesheet\" href=\"erjidaohanglan.css\">");out.println("<div class=\'top\'>欢迎光临,"+session.getAttribute("yonghu").toString()+"!&nbsp;&nbsp;&nbsp;&nbsp;您目前<a href=\""+recURL+"\">浏览的专家记录为:&nbsp;&nbsp;"+session.getAttribute("number").toString()+"&nbsp;&nbsp;条</a>"+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\""+backURL+"\">退出</a></div>");out.println("<div class=\"content\">");String id = (String)session.getAttribute("id");if(!"".equals(id)) {String[] nid = id.split(",");for(int i=0;i<=nid.length-1;i++) {int pid = Integer.parseInt(nid[i].substring(0,1));int eid = Integer.parseInt(nid[i].substring(1));out.println("<img src=\"image/"+images[pid][eid]+"\">");out.println("<div class=\" message \">科室名:"+dep[pid]+"---专家姓名:"+names[pid][eid]+"</div><hr>");}out.println("<p class=\"back\"><a href=\""+URL+"\">&nbsp;&nbsp;&nbsp;&nbsp;返回</a></p>");}else {out.println("<h2>用户您好,您还没有浏览记录!</h2>");   out.println("<hr><p class=\"back\"><a href=\""+URL+"\">&nbsp;&nbsp;&nbsp;&nbsp;返回</a></p>");}out.println("</div></body></html>");}}

输出的结果如图:

最后一个页面是点击退出,然后返回登录页面的代码,我创建的servlet叫做LogOutServlet.java:

依旧要使用back在web.xml中进行重定向:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());HttpSession inv = request.getSession();inv.invalidate();   //废弃当前会话对象response.sendRedirect("denglu.html");return;}
   <servlet><servlet-name>back</servlet-name><servlet-class>edu.servlet.request.LogOutServlet</servlet-class></servlet><servlet-mapping><servlet-name>back</servlet-name><url-pattern>/back</url-pattern></servlet-mapping>

点击退出返回登录的页面:

还有一个我代码中涉及到的css文件内容如下,名字为erjidaohanglan.css:

@charset "UTF-8";
* {box-sizing: border-box;
}
body {text-align:center;
}
.clearfix::after {content: "";clear: both;display: table;
}.content .ti {width:100%;text-align:center;font-size:25px;color:white;background-color: blue;padding:10px;}
.content img {width:160px;height:180px;}
.img-container {text-align: center;float: left;width: 25%;padding: 5px;}

html之使用session进行服务器之间的跳转以及记录相关推荐

  1. linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...

    本文系统Centos6.0:这里的***服务以pptpd为例:其中底层涉及到pptpd+freeradius+mysql认证: 本文系真实案例:leader需求大多是这样的,节约成本还要达到所需要的效 ...

  2. 多台web服务器之间共享session

    常见的几种方法如下: 1. 写客户端Cookie的方式 当用户登陆成功以后,把网站域名.用户名.密码.token.session有效时间全部采用cookie的形式写入到客户端的cookie里面,如果用 ...

  3. cookie、session与token之间的关系

    cookie.session与token之间的关系 token 令牌,是用户身份的验证方式. 最简单的token组成:uid(用户唯一的身份标识).time(当前时间的时间戳).sign(签名). 对 ...

  4. 利用 sftp 在本地和服务器之间传输文件

    目录 NO.0 xShell5 利用 sftp 在本地和服务器之间传输文件: NO.1 通过SecureCRTPortable利用sftp本地与服务器互相传输文件 NO.2 Java通过SFTP连接. ...

  5. 在多台FMS服务器之间共享流

    FMS有一个非常重要的功能,那就是可以在多台服务器之间共享流. 利用这一功能,我们可以把源服务器上的流分发到其它的服务器,这些获得流的服务器同样可以作为新的源服务器使用.这个功能有点象FMS集群. 我 ...

  6. django两个服务器之间的通讯

    django两个服务器之间的通讯 ajax通讯 服务器127.0.0.1:8000的代码如下: /project/project/urls: from django.contrib import ad ...

  7. C/S架构程序多种类服务器之间实现单点登录(转)

    (一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...

  8. 应用程序服务器和Web服务器之间有什么区别?

    应用程序服务器和Web服务器之间有什么区别? #1楼 最大的不同是Web服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑. #2楼 这取决于特定的体系结构. 某些应用程序服务器 ...

  9. linux手动安装rsync_Linux服务器之间文件如何实现实时同步传输

    1 最近在做服务器迁移的时候,遇见了一个很头疼的问题.那就是我原本的服务器数据实在是太多了高达250G,而且不能在短时间立马切换.所以需要一个过渡期,但是在此期间又会新增文件或者用户修改文件,那么如何 ...

  10. 把服务器文件备份到文件服务器,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...

    很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器 .如何实现呢? 一.Windows文件服务器自动备份的方法 Windows文件服务器自动备份的最简单方法是安 ...

最新文章

  1. 通过grub硬盘安装centos7
  2. Linux系统简介 、 安装Linux系统 、 RHEL6基本操作
  3. 【总结】有三AI大量原创视频和图文资料,你都存下来了吗
  4. python高级语言设计我是卧底_Python高级应用程序设计任务
  5. 计算机操作系统寻址,计算机操作系统-寻址和字节顺序
  6. linux tomcat环境变量配置_Tomcat
  7. 邮箱用户名登录php,让WordPress支持用户名或邮箱登录
  8. 马斯克:未来将尝试打造超级高铁运输系统 时速是飞机的2倍
  9. 基于labview的周立功usbcan盒的研究
  10. MATLAB求最大值max函数
  11. 图片质量与ISO 光圈 快门 测光 曝光与曝光补偿 焦距和焦距转换系数 景深与光圈优先 白平衡与RAW
  12. 辐射光电流测试软件,资深工程师告诉你如何使用示波器测试EMI辐射干扰
  13. Django 入门:tests.py
  14. 自动切换手机耳机模式和话筒模式
  15. 微信关注公众号获取用户信息
  16. [最优化]凸集的定义与常见凸集
  17. 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
  18. 计算机二级vb必背,【2015年必备】全国计算机二级VB公共基础知识总汇(熟记必过,不看后悔).doc...
  19. Python爬取15万条《我是余欢水》弹幕,看郭京飞如何演活极丧中年人
  20. fffffffffffff

热门文章

  1. 2个最好的中文图标搜索引擎
  2. 文件、图片上传,下载预览的实现
  3. pytorch crnn 笔记(二)
  4. JAVA 开发规范
  5. echarts 曲线面积对比图
  6. 不定式和动名词复合结构是什么
  7. 三维重建 建立客观世界的虚拟现实||时空克隆 三维视频融合 投影融合 点卯 魔镜系列
  8. 技术能力和工作能力的联系和区别
  9. 设置共享文件夹以计算机用户名和密码访问,Win10正式版系统怎么设置共享文件夹密码访问...
  10. 校学 离散数学主析取合取范式 做题心得