传参

2022-07-28

目录

    • 1. 表单form
    • 2. request
    • 3. session
    • 4. application
    • 5. application request session区别
    • 6. jsp servlet
    • 7. request.getParamter()和request.getAttribute()

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

《传参.doc》

下载本文的Word格式文档,以方便收藏与打印。