文档章节

转发.隐藏JSP.URL地址.md

凯哥学堂
 凯哥学堂
发布于 2017/07/07 20:01
字数 624
阅读 16
收藏 0

一、转发参数:

1.将jsp里面的参数通过LoginServlet转到PageSelvert:

@WebServlet(“/login”)
public  class  LoginServlet  extends  HttpServlet{

protected void dopost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{   
//转发到PageServlet去
Request.getRequestDispatcher(“/page”),forword(request,reapomse);  
}}

@WebServlet(“page”)
public  class  PageServlet  extends  HttpServlet{

protected void dopost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ 

String usename = request.getParameter(“usename”);
String password = request.getParameter(“password”);
System.out.pritln(usename);
System.out.pritln(passworrd);
}
}

2.将LoginServlet里面的存放的值带给PageServlet中去:

@WebServlet(“/login”)
Public  class  LoginServlet  extends  HttpServlet{

Protected  void  dopost(HttpServletRequest  request,HttpServletResponse  response){
//在request对象里,设置属性值,只要是同一个request对象才能获得此数据(所以转发可以,重定向不行,重定向是两个)
//将email带过去(只能在前面,如是在传的后(getRequestDisPatcher后面),则得不到)
Request.setAttribute(“email”,”123456@163.com”);
Request.getRequestDisPatcher(“/page”),forword(request,response);
}
}  

@WebServlet(“/page”)
Public class PageServlet extends HttpServlet{
Protected void dopost(HttpServletRequest  request,HttpServletResponse  response){
//得到123456@163.com
String email = (String)request.getAttribute(“email”);
//删除email值
Request.removeAttribute(“email”);
//拿到所有的名字
Request.getAttributeNames();
String usename = request.getParameter(“usename”);
String password = request.getParameter(“password”);
}
}

** 转发参数:** removeAttribute 删除 getAttributeNames 拿到所有的名字 setAttribute 设置值 getAttribute 得到值

request response 他们的生命周期,就在请求和响应之间结束。

二、隐藏JSP:

可以将JSP放入WEB-INF目录,以后只能用转发来访问以下的JSP

<welcome-file-list>
<-- 欢迎页面是转发机制的跳转 -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

20170707001

目的:隐藏jsp 将访问页面改成如下:

<welcome-file-list>
<welcome-file>/WEB-INF/pages/index.jsp</welcome-file>
</welcome-file-list>

20170707001

20170707001

前面加“/”直接到以其为根目录的地方

//admin为一个虚拟夹子
@WebServlet("/admin/test")
public class TestServlet entends HttpServlet{
protected void deGet(HttpServletQuest req,HttpServletResponse resp)throws ServletException,IOEception{
resp.sendRedirect("index.jsp");
}
}

20170707001

想访问到的3种方法:

//”..”代表在index.jsp目录下向上跳一个目录
resp.sendRedirect("../index.jsp");
System.out.println(req.getContextPath());//servlet7_url
resp.sendRedirect(req.getContextPath()+"/index.jsp");
resp.sendRedirect(req.getContextPath() + "/");

三、乱码问题:

Tomcat7 版本转换乱码需要看方法来转get string类转码 post就直接设置编码就可以了

String s=req.getParament("text");
        ↓
<from actoin="lm" method="get">
System.out.println(new String(s.getBytes(ISO-8859),"utf-8"));
req,setCharacterEncoding("UTF-8");
String s=req.getParamenter("test");
        ↓
<from actoin="lm" method="post">
System.out.println(s);

Tomcat8 版本就不需要半段方法,直接设置转码就可

req.setCharacterEncoding("UTF-8");
String s=req.getParameter("test");
System.out.println(s);

如果不转码,直接打印,就会出现乱码,如下图:

20170707001

如果想将一个Servlet里面的字符传到另一个Servlet中去,需要进行转码,如:

Request.sendRedirect(text1?name=”狗子”);

此时应写成:

Text0Servlet:
Request.sendRedirect(“text1?name=”+URLEncode.encode(“狗子”));
Text1Servlet:
//tomcat8
Request.setCharacterEncoding(“UTF-8”);
//tomcat 7
String  s=new String(request.getParameter(“name”).getBytes
(“ISO-8859-1”),”utf-8”);
System.out.println(request.getParameter(“name”));
resp.sendRedirect("test1?name="+URLEncoder.encode("多态","UTF-8"));
                           ↓
req.setCharacterEncoding("UTF-8");
//String s=new String(req.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")
System.out.println(req.getParameter);

© 著作权归作者所有

凯哥学堂
粉丝 18
博文 316
码字总数 284948
作品 0
东城
程序员
私信 提问
Bootstrap 响应式实用工具

Bootstrap 提供了一些帮助器类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。 需要谨慎使用这些工具,避免在同一个站...

wybo521
2016/01/26
12
0
三种组播VPN承载方案对比

方案一:基于PIM-SM/mGRE的承载方案 如图所示,公网运行PIM-SM协议,且PE 1、PE2和PE 3都支持mVRF实例。 不同的mVRF站点加入到同一个组播域(MD)中,通过MD内自动建立的组播隧道(MT)将这些...

抽筋的西瓜
2014/03/02
0
0
邓海二/thinker-md

Thinker-md是什么 Thinker-md是一个支持markdown的在线文档编辑器,在线演示:http://thinkermd.oschina.mopaas.com/produce.html Thinker-md的特性 支持Markdown标准和Github风格; 编辑内容...

邓海二
2015/03/12
0
0
分享一个简单的web热部署架构

OSChina 不支持 md,附上图片如下,github 地址: https://github.com/samuelzuuka/buildfuture-simple-template @BuildFuture This Article is composed by Samuel Zuuka, anyone is free t......

longjuelegend
2016/06/17
50
0
从零开始配置git

从零开始配置git 史上最浅显易懂的Git教程(适合没有任何基础的人):http://www.liaoxuefeng.com Git常用命令整合:待优化。。。 第一步:安装git 官网地址:https://git-for-windows.github....

jiangbang
2016/05/20
183
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
6
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部