博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet--传参和接参
阅读量:5887 次
发布时间:2019-06-19

本文共 5269 字,大约阅读时间需要 17 分钟。

OK,现在基本的Servlet接口和常用类都整理的差不多的,本篇博客开始整理Servlet和页面的交互。
1,接参
以下几个常用的方法:
getParameter public String getParameter(String name);
以一个String返回指定的参数的值,如果这个参数不存在返回空值。例如,在一个HTTP Servlet中,这个方法会返回一个指定的查询语句产生的参数的值或一个被提交的表单中的参数值。如果一个参数名对应着几个参数值,这个方法只能返回通过getParameterValues方法返回的数组中的第一个值。
特别要注意:如果这个参数有(或者可能有)多个值,你只能使用getParameterValues方法。
getParameterNames public Enumeration getParameterNames();
返回所有参数名的String对象列表,如果没有输入参数,该方法返回一个空值。
getParameterValues public String[] getParameterValues(String name);
通过一个String对象的数组返回指定参数的值,如果这个参数不存在,该方法返回一个空值。

另外还有一个就是getParameterMap()方法,但是我自己去翻API,竟然没有找见,难道是API过时了?先不管,这个方法返回的所有的参数和参数的值,被封装成了一个map返回。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%	String path = request.getContextPath();	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%>Servlet表单提交	
姓名:
年龄:
学校:
学校1
学校2
学校3
学校4
package linkin;import java.io.IOException;import java.util.Arrays;import java.util.Enumeration;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LinkinServlet extends HttpServlet{	private static final long serialVersionUID = 1L;	@Override	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException	{		req.setCharacterEncoding("UTF-8");		String userName = req.getParameter("userName");		System.out.println(userName);		String[] schools = req.getParameterValues("school");		for (String school : schools)		{			System.out.println(school);		}		Enumeration enumeration = req.getParameterNames();		while (enumeration.hasMoreElements())		{			String name = (String) enumeration.nextElement();			System.out.println(name + ":" + req.getParameter(name));		}		Map
map = req.getParameterMap(); for (String key : map.keySet()) { System.out.println(Arrays.asList(map.get(key))); } for (Map.Entry
entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + Arrays.asList(entry.getValue())); } System.out.println(req.getMethod()); System.out.println(req.getQueryString()); Enumeration enumeration1 = req.getHeaderNames(); while (enumeration1.hasMoreElements()) { System.out.println(enumeration1.nextElement() + ":" + req.getHeader((String) enumeration1.nextElement())); } /* * host:keep-alive * content-length:max-age=0 * accept:http://localhost:8080 * user-agent:application/x-www-form-urlencoded * referer:gzip, deflate * accept-language:JSESSIONID=4214F4CE399E02730C3219CF0BD83623 */ } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); }}
LinkinServlet
linkin.LinkinServlet
name
LinkinPark...
LinkinServlet
/LinkinServlet
2,传参

setAttribute public void setAttribute(String name, Object object);

这个方法在请求中添加一个属性,这个属性可以被其他可以访问这个请求对象的对象(例如一个嵌套的Servlet)使用。

传参一般用setAttribute() 方法,不管是request,还是session,还是application都可以用这个方法将值放进去,不同的只是放入的范围不同而已。

package linkin;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LinkinServlet extends HttpServlet{	private static final long serialVersionUID = 1L;	@Override	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException	{		req.setCharacterEncoding("UTF-8");		String userName = req.getParameter("userName");		String passWord = req.getParameter("passWord");		req.setAttribute("userName", userName);		req.getSession().setAttribute("passWord", passWord);		req.getRequestDispatcher("/Linkin1.jsp").forward(req, resp);	}	@Override	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException	{		this.doGet(req, resp);	}}
LinkinServlet
linkin.LinkinServlet
name
LinkinPark...
LinkinServlet
/LinkinServlet
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%	String path = request.getContextPath();	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%>Servlet表单提交	
姓名:
年龄:
学校:
学校1
学校2
学校3
学校4
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%	String path = request.getContextPath();	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%>Servlet显示数据	OK,成功跳转到页面。	姓名:<%=request.getAttribute("userName") %>;	年龄:<%=session.getAttribute("passWord") %>

转载于:https://www.cnblogs.com/LinkinPark/p/5233007.html

你可能感兴趣的文章
Linux系统基准
查看>>
几个简单的html+css+js题目
查看>>
MicroPython可视化编程开发板—TurnipBit自制MP3教程实例
查看>>
张双老师PHP开发实例教程持续更新中
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
查看>>
【quick-cocos2d-x】 CCHttpRequest用法
查看>>
sql 2005、2008维护计划备份数据库
查看>>
Windows 8没有失败的五个理由
查看>>
puppet之exec管理
查看>>
zipkin相关材料
查看>>
head,tail读取文件数据行
查看>>
路由相关
查看>>
weblogic启动慢,停到log manager基本不动了
查看>>
bootstrap 框架学习笔记
查看>>
XP服务详解与建议
查看>>
如何利用CSS画个桃心
查看>>
我的友情链接
查看>>
第十八章、Linux网络配置
查看>>
Linux查看系统的负载
查看>>
linux下lvm逻辑卷和快照的命令详解
查看>>