欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

传参

程序员文章站 2022-04-15 19:05:49
目录1. 表单form2. request3. session4. application5. application request session区别6. jsp servlet7. request.getParamter()和request.getAttribute()1. 表单form在jsp页面中,利用form可以将参数传递到另一个jsp页面或者传递到servlet中,一般用request的getParameter方法来接受。jsp→jsp<%@ page language="ja...

1. 表单form

在jsp页面中,利用form可以将参数传递到另一个jsp页面或者传递到servlet中,一般用request的getParameter方法来接受。
jsp→jsp

<%@ page language="java" contentType="text/html"  pageEncoding="UTF-8"%>
<html>
<head><title>用户登录页面!</title></head>
	<body>
	 <form action="Show.jsp" method="post">
	 用户名:<input type="text" name="username"/><br/>
	 密码:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="password" name="userpd"><br/>
	 <input type="submit" value="登 录">
	 </form>
	</body>
</html>

jsp→servlet

<form action="UserServlet" method="post">
			<h3 align="center">
		用户名:<input type="text" name="UserName"/><br/>
		&nbsp&nbsp&nbsp&nbsp密码:<input type="text" name="Password"/><br/>
			<input type="submit" value="登 录">
			</h3>
		</form>

2. request

可以在与创建它的jsp页面监听的http请求相同的任意一个jsp中被访问。

不仅仅可以作为接收参数,request也可传递参数。

//防止接收的时候 汉字乱码
<%request.setCharacterEncoding("UTF-8"); %>
<%request.setAttribute("name", "小王"); %>

在接收页面这样写:

<%=(String)request.getAttribute("name")%>

3. session

从进入网站到浏览器关闭所经过的一段时间被称为一次对话,对一个网站不同的页面的额访问都属于同一会话。
session对象的setAttribute(),getAttribute()与request类似,只是范围不同。

<%request.setCharacterEncoding("UTF-8"); %>
<%session.setAttribute("name", "小明"); %>

接收:

<%=(String)session.getAttribute("name")%>

4. application

<%request.setCharacterEncoding("UTF-8"); %>
<%application.setAttribute("name", "小明"); %>

接收:

<%=(String)application.getAttribute("name")%>

5. application request session区别

(1)session对象与用户会话相关,不同的用户的session是完全不同的对象,在session中设置的属性只是当前客户的会划范围内容有效,客户超过保存时间不发送请求时,session对象将会被收回。
(2)所有访问同一网站的用户,都有一个相同的application对象,只要关闭服务器后,application对象中的设置属性才会被收回。
(3)当客户端提交请求时,才会创建request对象,当返回响应处理后,request对象自动销毁。

6. jsp servlet

jsp→servlet→jsp

<%@ page language="java" pageEncoding="UTF-8"  import="java.util.*"  %>
<html>
	<head> <title>login系统页面</title> </head>
	<boby>
		<hr>
		 <font color=Lime face="宋体" size=15 ><h3 align="center">~~欢迎您使用山东农业大学学生系统~~</h3></font>
	    <hr>
	    <form action="servlet" method="post">
	    	请输入用户名:<input type="text" name="username"/></br>
	    	请输入密码 <input type="password" name="userpwd"/
	    	></br>
	    	<input type="submit" value="登录"/>
	    	<input type="reset"/>
	    </form>
	</boby>
</html>

package ServeletPack;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * servlet implementation class servelet0
 */
@WebServlet("/servlet")
public class servlet extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
    public servlet() 
    {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		
		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		//doGet(request, response);
		String userName=request.getParameter("username");
		String userPwd=request.getParameter("userpwd");
		String info="";
		if("abc".equals(userName)&&"123"==userPwd)
			info="欢迎您:"+userName+"!";
		else 
			info="用户名或密码不正确!";
		request.setAttribute("outMessage",info);
		request.getRequestDispatcher("/info.jsp").forward(request, response);
	}
	

}

<%@ page language="java" pageEncoding="UTF-8"  import="java.util.*"  %>
<html>
	<head> <title>info系统页面</title> </head>
	<boby>
		<hr>
		 <font color=Lime face="宋体" size=15 ><h3 align="center">欢迎您使用山东农业大学学生系统</h3></font>
	    <hr>
	    <%=request.getAttribute("outputMessage") %>
	</boby>
</html>

如果不用表单的话,就是得用session.setAttribute,然后在servlet中用request.getsession.getAttribute(xxx)

7. request.getParamter()和request.getAttribute()

首先request的getParameter方法可以接受来自不同的jsp页面或者jsp动作传递给request对象的参数信息。
(1) 使用jsp的forward或者include动作,利用传参数子动作 实现传递参数。
(2)在jsp或者html中,利用表单传递参数
(3)追加在网址后的参数传递或者追加在超链接后面的参数。
(1)(3)属于get提交方式,(2)通过form的method属性设置提交方式为get或post。
而request的getAttribute相对应的是setAttribute方法,他可以吧数据设置在request范围容器内,getAttribute就可以获得属性值

本文地址:https://blog.csdn.net/weixin_45988242/article/details/109257632