知识大全 Servlet与JSP间的传值问题
Posted 内容
篇首语:先学爬,然后学走。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Servlet与JSP间的传值问题相关的知识,希望对你有一定的参考价值。
Servlet与JSP间的传值问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Servlet与JSP 之间的传值有两种情况 JSP > Servlet Servlet > JSP
通过对象 request和 session (不考虑 application)完成传值
一 JSP > servlet
JSP页面有 种方法向 servlet传值 form表单 URL
- <! JSP page >
- <%
- session setAttribute("testSession" "Hello session");
- reqeust setAttribute("testRequest" "Hello request");
- %>
- <a href="JspServlet?action=toServlet">点击</a>
- <form action="JspServlet?action=toServlet" method="post" name="form">
- <input name="username" type="test" />
- <input type="submit" value="submit">
- </form>
对于该JSP页面 form表单的内容 如 <input>标签 在 servlet可用 request getParameter("username");获取
URL 比如这里的 <a>标签的 href属性与 <form>标签的 action属性的值 "JspServlet?action=toServlet" 在 servlet同样用 request getParameter("action")获取 所要注意的是这里的 url 要和 servlet在web xml里的 <url pattern>标签的路径所对应 这部分后面会提到
java片段代码 servlet只能接到 session setAttribute("testSession" "Hello session")的内容 而接不到 request的内容 在 servlet里用 request getSession() getAttribute("testSession")获取 session内容
二 Servlet
关于 servlet 首先要提到它在 web xml里的注册内容 如
- <servlet name>JspServlet </servlet name>
- <servlet class> demo JspServletDemo</servlet class>
- </servlet>
- <servlet mapping>
- <servlet name>JspServlet </servlet name>
- <url pattern>/JspServlet</url pattern>
- </servlet mapping>
- <servlet name>JspServlet </servlet name>
- <servlet class> demo JspServletDemo</servlet class>
- </servlet>
- <servlet mapping>
- <servlet name>JspServlet </servlet name>
- <url pattern>/admin/JspServlet</url pattern>
- </servlet mapping>
假如 project name 是 jsp servlet 则该 project根目录的 Context是 /jsp servlet 在地址栏里显示是 //localhost: /jsp servlet/
在 project 根目录下有 admin目录 对应的 Context是/admin/jsp servlet 在地址栏里显示是 //localhost: /jsp servlet/admin
在这两个目录下的 jsp 都想转到 demo JspServletDemo类做处理 这时的 url需要在 web xml注册两次
)在 //localhost: /jsp servlet/ 目录下的 jsp 页面 JspServlet
url应写为 "JspServlet"
)在 //localhost: /jsp servlet/admin/ 目录下的 jsp 页面访问 JspServlet url应写为 "admin/JspServlet"
在 servlet直接用 request对象 得到发送来的请求内容 用 request getSession() 得到 session对象 从而得到会话内容 这里的 request getSession()的参数为 boolean 类型 该方法意思可理解为
session可以认为是每一个IE进程对应一个会话(新开一个IE进程就可以对应两个会话的) getSession都是返回当前用户的会话对象 参数的区别在于
参数为true (默认) 则如果“当前用户的会话对象”为空(第一次访问时)则创建一个新的会话对象返回
参数为false 则如果“当前用户的会话对象”为空 则返回 null (即不自动创建会话对象)
利用这个方法可以判断 session是否过期 如下
- if(request getSession(false)==null)
- System out println("Session has been invalidated!");
- else
- System out println("Session is active!");
三 Servlet > JSP
从 servlet转到 jsp不外乎两种方法 重定向 和 url转发
重定向 ( Redirect) 是路径的跳转 内容和 url都改变 不允许带 request参数( session参数可以) 即不允许在 servlet里给 request对象使用setAttribute方法传给下一页面 在 servlet里使用 response sendRedirect(url) 方法 注意这里的 url前不带斜线 / 如 response sendRedirect(”test jsp“)
url转发 ( Forward) 是页面的跳转 页面内容发生改变 url不变 可以带 request和 session参数 在 servlet里使用 getServletConfig() getServletContext() getRequestDispatcher(url) forward(request response) 而这里的 url前需要带斜线 / 如getServletConfig() getServletContext() getRequestDispatcher(”/test jsp“) forward(request response)
- String fr="good well";
- request setAttribute("test" fr);
- RequestDispatcher de=request getRequestDispatcher("/test jsp");
- de forward(request response);
相关参考
ASP.NET页面间的传值的几种方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
ASP.NET页面间的传值的几种方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
JSFjsp页面和后台bean传值问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! :jsf中
在jsp和servlet的开发中今天自己做的一个小例子中出现了中文乱码问题用了许多方法发现还是解决不了最后我用了过滤器才算终结 此方法总结如下在jsp页面中使用<%@pagepageEnc
关于Servlet及JSP中遇到的多线程同步问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Jsp与servlet的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! jsp经编译后就变成
JSP页面传值中文乱码的简单解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源代码ajs
使用JSP/Servlet上载文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinz
JSP和Servlet配置详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先是下载工具
JSP和Servlet的性能优化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在本文中带领你学