带参重定向
request.getRequestDispatcher("这里写要跳转jsp页面的路径").forward(request, response);
http://blog.csdn.net/radic_feng/article/details/6798378
httpclient重定向http://www.cnblogs.com/ylqmf/archive/2011/08/25/2153859.html
4. 模拟输入用户名和口令进行登录
本小节应该说是HTTP客户端编程中最常碰见的问题,很多网站的内容都只是对注册用户可见的,这种情况下就必须要求使用正确的用户名和口令登录成功后, 方可浏览到想要的页面。因为HTTP协议是无状态的,也就是连接的有效期只限于当前请求,请求内容结束后连接就关闭了。在这种情况下为了保存用户的登录信 息必须使用到Cookie机制。以JSP/Servlet为例,当浏览器请求一个JSP或者是Servlet的页面时,应用服务器会返回一个参数,名为 jsessionid(因不同应用服务器而异),值是一个较长的唯一字符串的Cookie,这个字符串值也就是当前访问该站点的会话标识。浏览器在每访问 该站点的其他页面时候都要带上jsessionid这样的Cookie信息,应用服务器根据读取这个会话标识来获取对应的会话信息。
对于需要用户登录的网站,一般在用户登录成功后会将用户资料保存在服务器的会话中,这样当访问到其他的页面时候,应用服务器根据浏览器送上的Cookie 中读取当前请求对应的会话标识以获得对应的会话信息,然后就可以判断用户资料是否存在于会话信息中,如果存在则允许访问页面,否则跳转到登录页面中要求用 户输入帐号和口令进行登录。这就是一般使用JSP开发网站在处理用户登录的比较通用的方法。
这样一来,对于HTTP的客户端来讲,如 果要访问一个受保护的页面时就必须模拟浏览器所做的工作,首先就是请求登录页面,然后读取Cookie值;再次请求登录页面并加入登录页所需的每个参数; 最后就是请求最终所需的页面。当然在除第一次请求外其他的请求都需要附带上Cookie信息以便服务器能判断当前请求是否已经通过验证。说了这么多,可是 如果你使用httpclient的话,你甚至连一行代码都无需增加,你只需要先传递登录信息执行登录过程,然后直接访问想要的页面,跟访问一个普通的页面 没有任何区别,因为类HttpClient已经帮你做了所有该做的事情了,太棒了!下面的例子实现了这样一个访问的过程。
/**//*
* Created on 2003-12-7 by Liudong
*/
package http.demo;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.*;
import org.apache.commons.httpclient.methods.*;
/** *//**
* 用来演示登录表单的示例
* @author Liudong
*/
public class FormLoginDemo ...{
static final String LOGON_SITE = "localhost";
static final int LOGON_PORT = 8080;
public static void main(String[] args) throws Exception...{
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);
//模拟登录页面login.jsp->main.jsp
PostMethod post = new PostMethod("/main.jsp");
NameValuePair name = new NameValuePair("name", "ld");
NameValuePair pass = new NameValuePair("password", "ld");
post.setRequestBody(new NameValuePair[]...{name,pass});
int status = client.executeMethod(post);
System.out.println(post.getResponseBodyAsString());
post.releaseConnection();
//查看cookie信息
CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());
if (cookies.length == 0) ...{
System.out.println("None");
} else ...{
for (int i = 0; i < cookies.length; i++) ...{
System.out.println(cookies[i].toString());
}
}
//访问所需的页面main2.jsp
GetMethod get = new GetMethod("/main2.jsp");
client.executeMethod(get);
System.out.println(get.getResponseBodyAsString());
get.releaseConnection();
}
}
分享到:
相关推荐
### JSP页面跳转方法详解 #### 一、概述 JSP(Java Server Pages)是一种动态网页技术标准,被广泛应用于构建动态网站和Web应用程序。在JSP开发中,页面跳转是一项非常基础且重要的功能,它使得用户能够在不同的...
在这个例子中,`<jsp:include>`标签或JavaScript函数`doRedirect`会向服务器请求跳转到`targetPage.jsp`。 3. 如果需要根据图片的不同来决定跳转的页面,可以在JSP中使用条件语句(如`<c:if>`标签,来自JSTL库)来...
JSP(JavaServer Pages)作为一种广泛使用的服务器端技术,在实现页面跳转方面提供了多种方式。本文将详细介绍五种JSP页面跳转的方法,并通过具体的示例代码来帮助理解每种方法的特点及应用场景。 #### 1. ...
1. JSP的`response.sendRedirect()`:在JSP中,可以使用`HttpServletResponse`的`sendRedirect()`方法实现服务器端的跳转。例如: ```jsp response.sendRedirect("target.html"); %> ``` 这会向客户端发送一个302...
在选择合适的跳转方式时,应根据具体需求考虑是否需要传递请求数据、是否需要改变浏览器地址栏中的URL以及是否支持跨服务器跳转等因素。在实际开发中合理运用这些方法,可以有效提升Web应用程序的功能性和用户体验。
### JSP页面跳转方法详解 #### 一、RequestDispatcher.forward() **定义与用途:** `RequestDispatcher.forward()` 是一种服务器端的跳转方法,它主要用于在同一个Web应用内部进行页面之间的跳转。该方法的主要...
java五种jsp页面跳转方法详解 2009-08-21 09:06 1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 另外一个Servlet,JSP 或普通HTML...
在本示例中,我们探讨的是如何使用SpringBoot框架整合MyBatis,连接MySQL数据库,并通过JSP页面展示数据及实现页面跳转。首先,我们需要理解SpringBoot的核心特性,它是一个简化Spring应用初始搭建以及开发过程的...
要在Spring Boot中使用JSP,需要添加Tomcat作为嵌入式服务器,并配置相关依赖。在`pom.xml`文件中,我们需要引入`spring-boot-starter-web`和`spring-boot-starter-tomcat-jsp`依赖: ```xml <groupId>org....
页面跳转是网页开发中一个常见且重要的功能,无论是通过HTML的标签、JavaScript还是JSP等服务器端技术,都有其独特的优势和适用场景。了解这些技术的原理和使用方法,能够帮助开发者更灵活地控制页面导航流程,提升...
### JSP页面跳转的五种方法 在Java Web开发中,页面间的跳转是非常常见的需求之一。合理的页面跳转不仅可以提升用户体验,还能优化应用程序的结构。本文将详细介绍JSP页面跳转的五种方法:`RequestDispatcher....
### jsp与Servlet跳转实例:深入理解信息提交与页面跳转 在Web开发中,JSP(Java Server Pages)和Servlet是两个重要的技术组件,它们共同协作来处理客户端请求并生成动态网页内容。本文将详细解析一个具体的案例...
### JSP 页面的五种跳转方式详解 在 Web 开发中,页面之间的跳转是十分常见的需求之一。对于使用 Java Server Pages (JSP) 的开发者来说,掌握不同类型的页面跳转方法非常重要,这不仅有助于提高开发效率,还能增强...
### jsp实现页面跳转的方法详解 在JavaServer Pages(JSP)开发中,页面跳转是一项基本且关键的技术,用于实现用户界面的导航和控制流。本文将深入探讨两种主要的页面跳转方法——`jsp:include`与`jsp:forward`,并...
`<jsp:forward>`和`request.getRequestDispatcher().forward()`则适用于需要在服务器内部进行页面跳转且希望保持原有请求数据的情形。此外,还需注意在使用`<jsp:forward>`时避免缓冲区溢出等问题。
`response.sendRedirect`适用于需要改变URL或进行跨服务器跳转的情况;`response.setHeader`则更偏向于遵循HTTP规范的重定向操作;而`<jsp:forward>`则是在同一应用服务器内部高效传递请求和响应的理想选择,特别是...
### jsp与Servlet跳转详解 #### 一、引言 在Java Web开发中,页面间的跳转是一项基本且重要的功能。本篇文章将通过具体的示例来深入探讨JSP与Servlet之间的跳转机制,帮助读者更好地理解其工作原理及应用场景。 #...
JSP(JavaServer Pages)作为一种广泛使用的服务器端技术,提供了多种方式来实现页面间的跳转。本文将详细介绍JSP中的三种跳转方式:`response.sendRedirect()`、`response.setHeader("Location", "")`以及`<jsp:...
JSP页面跳转是Web开发中的重要概念,用于在用户界面上实现页面间的导航。这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、<jsp:forward page="" / >、Meta标签...
- 在Eclipse中配置Servlet和JSP项目可能需要手动添加Web服务器,而在MyEclipse中这些设置通常更为直观和自动化。 7. **Hello示例**:通常,"Hello"示例是一个简单的Servlet或JSP程序,用于展示基本的交互过程。在...