jsp中利用response.senddirect(str)重定向,传递参数新思路

用Servlet进行请求重定向,参数传递好办,直接用request.setAttribute(str1,str2);

但是如果不用Servlet 而是直接用jsp进行转发呢?

我们首先要知道   请求的重定向:在最终的Servlet中,request对象和中转的那个request不是同一个对象

所以传递参数,自然就获取不到了

下面我们换思路,另辟蹊径,我们用session   session的生命周期长啊  所以完全可以获取

至于session与request的知识,请查阅相关资料

下面贴出登录出现密码或用户名错误  跳转至login页面

<%
			userBean bean = new userBean();
			String name = request.getParameter("userName");
			String password = request.getParameter("userPassword");
			String str1 = "";
			if(bean.isVerifyLoginInfo(name, password))
				str1 = "login success";
			else
			{
				str1 = "fail in login,password or username has error.";
			%>
			<%-- 请求转发
			<jsp:forward page="login.jsp">
			<jsp:param name="error" value="<%=str1%>"/>
			</jsp:forward>
			--%>
			<%
				//请求重定向

				session.setAttribute("error",str1);
				//request.setAttribute("error",str1);
				response.sendRedirect("login.jsp");

				}
%>

  

     <%         //利用重定向获取到的参数属性
    		//String str = (String)session.getAttribute("error");
    		String str = (String)request.getAttribute("error");
    		/*利用请求转发获取的参数
	    	String str = request.getParameter("error");
    		if(str == null)
    			str="";
    		*/
    		if(str == null)
    			str="";
    	%>
    		<h2 align="center"><font color="red"><%=str %></font></h2>

  userBean对用户检测部分进行了封装。这个自己可以动手写一下。

时间: 2024-12-24 20:22:38

jsp中利用response.senddirect(str)重定向,传递参数新思路的相关文章

struts2 与 OGNL 表达式,jsp中 利用ognl 在valuestack中取值

在Struts2中,一个请求在最终到达Action的方法之前,Action对象本身会被压入ValueStack(实际上就是放到ValueStack的CompoundRoot中),所以Action对象是CompoundRoot中的一个元素.看下面的代码: public class UserAction { private String username; private Integer age; private boolean valid; //查看用户的详细信息 public String de

JSP中利用Properties读写配置文件

JSP中利用Properties读写配置文件 java 代码: package com.reason.test; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outp

记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: 1 ProcessStartInfo psi = new ProcessStartInfo(); 2 psi.FileName = "ProcessChild.exe"; 3 psi.Arguments = txtArgs.Text; 4 Process.Start(psi);//主要问题在这里 子进程的主程序: 1 txtArgs.Text = Process.GetCurrent

jsp中利用MySQL实现分页技术

分页是很常用的一种技术,而mysql中对于分页的操作也很简单,今天就说说如何在jsp页面中利用标签来最简化的实现分页: 链接:MySQL分页技术详解http://blog.csdn.net/u011637069/article/details/49928513 step1:编写DAO中代码: [java] view plain copy public List<Employee> findAll2(int page, int perPageRows) throws Exception { Li

JSP中利用JSTL标签对日期格式化

数据库:Mysql 开发语言:JAVA 页面类型:JSP 对Mysql中的日期类型格式化,在JSP中,如何办呢,很多人说在JAVA后台去日期格式化,无奈了,于是找到了比较靠谱的答案 需要先引入JSTL库 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 其次对JSP输出的日期进行格式化 <span>发布时间:<fmt:formatDate value=&qu

vue中Npm run build 根据环境传递参数方法来打包不同域名

项目开发中,前端在配置后端api域名时很困扰,常常出现: 本地开发环境: api-dev.demo.com 测试环境: api-test.demo.com 线上生产环境: api.demo.com, 这次是在Vue.js项目中打包,教大家个方法: 使用 npm run build -- xxx   ,根据传递参数xxx来判定不同的环境,给出不同的域名配置. 1.项目中/config/dev.env.js修改: 新增:HOST: '"dev"' 1 2 3 4 5 6 7 'use st

在 Angularjs 中 ui-sref 和 $state.go 如何传递参数

1 ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: <a ui-sref="message-list">消息中心</a> $state.go('someState')一般使用在 controller里面: .controller('firstCtrl', function($scope, $state) { $state.go('login'); }); 这两个本质上是一样的东西,我们看ui

jsp中几种跳转方式和参数共享

整理了一下jsp入门中的跳转和数据共享问题,写成这篇博文希望对大家有帮助,参考文章列在后面: 常用的跳转方式有以下几种: (1)href超链接标记,属于客户端跳转 (2)使用javascript完成,属于客户端跳转 (3)提交表单完成跳转,属于客户端跳转 (4)使用response对象,属于客户端跳转 (5)使用requestDispatcher类,属于服务器跳转 下面一一来看 (1)href超链接标记 这个比较简单,通常写到a标签里即可,来完成指定位置的动态跳转比较方便 代码:<a href=

SpringMVC重定向传递参数

在SpringMVC的一个controller中要把参数传到页面,只要配置视图解析器,把参数添加到Model中,在页面用el表达式就可以取到.但是,这样使用的是forward方式,浏览器的地址栏是不变的,如果这时候浏览器F5刷新,就会造成表单重复提交的情况.所以,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交. WEB-INF下web.xml文件: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD We