传参
目录
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/>
密码:      <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/>
    密码:<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