总结JSP与servlet之间的传值
JSP 与servlet 之间的传值有两种情况:JSP -> servlet, servlet -> JSP。
通过对象request 和session (不考虑application)完成传值。
一、JSP -> servlet
JSP 页面有3种方法向servlet 传值: form 表单、URL 、其他
<!-- JSP page -->
...
<%...
session.setAttribute("testSession","Hello session");
reqeust.setAttribute("testRequest","Hello request");
%>
<a href="JspServlet?action=toServlet">click me</a>
<form action="JspServlet?action=toServlet" method="post" name="form">
<input name="username" type="test" />
<input type="submit" value="submit">
</form>
...
1、对于该JSP 页面form 表单的内容,如<input>标签,在servlet 可用request.getParameter("username");
获取。
2、URL:比如这里的<a>标签的href 属性与<form>标签的action 属性的值"JspServlet?action=toServlet",
在servlet 同样用request.getParameter("action")获取;所要注意的是这里的url 要和servlet 在web.xml 里
的<url-pattern>标签的路径所对应。这部分后面会提到。
3、java 片段代码,servlet 只能接到session.setAttribute("testSession","Hello session")的内容,而接不到
request 的内容。在servlet 里用request.getSession().getAttribute("testSession")获取session 内容。
二、Servlet
1、关于servlet,首先要提到它在web.xml 里的注册内容,如
<servlet-name>JspServlet1</servlet-name>
<servlet-class>com.demo.JspServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JspServlet1</servlet-name>
<url-pattern>/JspServlet</url-pattern>
</servlet-mapping>
<servlet-name>JspServlet2</servlet-name>
<servlet-class>com.demo.JspServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JspServlet2</servlet-name>
<url-pattern>/admin/JspServlet</url-pattern>
</servlet-mapping>
假如project name 是jsp2servlet,则该project 根目录的Context 是/jsp2servlet,在地址栏里显示是
http://localhost:8080/jsp2servlet/;
在project 根目录下有admin 目录, 对应的Context 是/admin/jsp2servlet , 在地址栏里显示是
http://localhost:8080/jsp2servlet/admin,
在这两个目录下的jsp 都想转到com.demo.JspServletDemo 类做处理,这时的url 需要在web.xml 注册两
次。
1)在http://localhost:8080/jsp2servlet/ 目录下的jsp 页面JspServlet1,url 应写为"JspServlet"
2) 在http://localhost:8080/jsp2servlet/admin/ 目录下的jsp 页面访问JspServlet2 , url 应写为
"admin/JspServlet"
2、在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 转发
1、重定向( Redirect):是路径的跳转,内容和url 都改变。不允许带request 参数( session 参数可以),即不
允许在servlet 里给request 对象使用setAttribute 方法传给下一页面。在servlet 里使用
response.sendRedirect(url) 方法。注意这里的url 前不带斜线/,如response.sendRedirect(”test.jsp“)
2、url 转发( Forward):是页面的跳转,页面内容发生改变,url 不变。可以带request 和session 参数。在servlet
里使用getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而这
里的url 前需要带斜线/ , 如
getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)
分享到:
相关推荐
### JSP与Servlet之间的传值详解 #### 一、引言 在Web开发中,Java Server Pages (JSP) 和 Servlet 是两种非常重要的技术。它们通常被用来构建动态网页和处理用户请求。JSP 主要负责展示层逻辑,而 Servlet 更多...
JSP与Servlet传值技术是Java Web开发中的一种重要技术,用于实现前台和后台之间的数据传递。该技术有多种实现方式,本文将对其进行总结和说明。 JSP到JSP的传值技术 JSP到JSP的传值技术主要有四种: 1. 超链接...
2. **URL传值**:除了表单提交,还可以在链接或表单的`action`属性中携带参数,如`<a href="JspServlet?action=toServlet">`。在Servlet中,同样使用`request.getParameter`来获取URL中的参数: ```java String ...
#### 二、JSP与Servlet传值方法概述 根据所提供的信息,我们可以总结出JSP与Servlet之间的几种主要传值方法: 1. **通过request对象传值**:这是最常见的一种方式,可以在JSP页面设置request属性,在Servlet中通过...
在Web开发中,JavaServer Pages (JSP) 和 Java Servlets 是...总结来说,这个流程展示了如何利用JSP、Ajax和Servlet实现前后端间的JSON数据交互。这种技术在现代Web应用中广泛使用,可以提供高效、灵活的页面更新机制。
通过这个简单的Java Web学习demo,开发者可以了解Servlet和JSP协同工作的方式,以及如何在它们之间传递数据。这有助于理解Web应用的基础架构,并为进一步深入学习和开发复杂的Java Web应用打下坚实基础。
特别是在使用JSP技术时,如何有效地在不同的JSP页面或JSP与Servlet之间进行数据传输,是每个开发者都需要掌握的核心技能之一。本文将详细介绍两种常见的数据传递方式:通过Form表单以及通过Ajax。 #### 二、通过...
这篇博客将探讨如何在JSP中实现Java与JavaScript之间的值传递。 首先,让我们了解JSP的基本结构。JSP页面本质上是HTML代码与嵌入的Java代码相结合的。Java代码被编译成Servlet,然后在服务器端执行,生成HTML响应。...
AJAX技术的核心是`XMLHttpRequest`对象,它提供了浏览器与服务器之间进行异步通信的能力。通过使用这个对象,可以实现在不刷新整个页面的情况下,向服务器请求数据或提交数据。 ##### 2.2 Servlet简介 Servlet是一...
Request对象在Servlet和JSP之间起到了关键的角色,它用于在请求之间传递数据。本文将详细讲解如何利用`HttpServletRequest`对象在Java和JSP之间进行request传值。 首先,我们需要了解`HttpServletRequest`对象。它...
在实际开发中,JSP和Servlet之间的数据传递是常见的操作,下面我们详细探讨四种JSP向Servlet传值的方式。 1. **表单传值**: 当用户在JSP页面上填写表单并提交时,数据通过HTTP请求发送到Servlet。在JSP中,我们...
### JSP 页面间通过 Request/Session 传值详解 #### 一、背景介绍 在 Web 开发中,尤其是在 JavaServer Pages (JSP) 技术中,数据在不同页面之间的传递是一项基本且重要的功能。本篇文章将详细介绍如何利用 JSP 的 ...
Session和Request对象是Java Servlet API的一部分,可以在多个JSP页面之间持久存储数据。 - **Session**: ```java // 设置 session.setAttribute("name", "John"); // 获取 String username = (String) ...
总结来说,JSP与Flex的整合是构建高性能、交互性强的Web应用的有效方式。通过理解`web.xml`和`flex.xml`的配置,开发者可以轻松地实现前后端的数据交换,为用户提供更加丰富的用户体验。在`FlexProject`这个示例中,...
1、在前端往后端传值的地方用了layui table 数据传值,其中 总价实时改变和订单价格实时改变的地方 用了layui的模板。 2、servlet做了数据的组装,使得传回的值是可以被layui table所接收的。 3、商城功能:...
在网页开发中,JSP(JavaServer Pages)是一种动态网页技术,用于生成交互式、响应式的Web应用程序...通过学习和理解这个案例,开发者可以更好地掌握JSP、Servlet与jQuery的结合使用,提升Web应用的用户体验和交互性。
jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这是由于字符编码不一致所引起的。下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果...