(1)
是的。Servlet读取表单数据只能用一下三种方法。
单个值的读取:getParameter
多个值得读取:getParameterValues
参数名的查找:getParameterNames和getParameterMap
(2)
当前,在JSP中,使用JavaBean组件构架可以极大的简化读取请求参数,提取相应的值,并将结果存储到java对象的过程。存在这样的JSP语法(jsp:setProperty 调用 property= "*"),可以用来一举完成bean的填写工作。
按理说JSP能完成的工作Servlet也应该同样可以做到。毕竟,JSP的本质就是Servlet,每个JSP页面都要转换成Servlet,在请求期间运行的也是Servlet。但令人不可思议的是,Servlet规范却没有提供这样的功能:完成Property="*" 这一JSP过程的代码并没有一个标准的API暴露出来。
幸运的是,Apache软件基金会的Jakara通用包,得到广泛的应用,他提供的类是我们可以更容易的构建自动将请求参数和Bean属性关联起来的实用程序。
即:BeanUtilities.populateBean
关于Jakarta通用包的下载可以去Apache的官网。
不可以,使用spring mvc 解决该问题,可以!!
工程名:ServletStudy
表单文件:login.jsp
Servlet文件:LoginServlet.java
配置文件:web.xml
下面对是这几个文件的代码:
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
可以啊 就是一个Servlet过滤器,bean实现过滤器接口然后配置到web.xml中就可以了
这有个介绍的文章可以参考
http://topinking.javaeye.com/blog/401610
工程名:ServletStudy
表单文件:login.jsp
Servlet文件:LoginServlet.java
配置文件:web.xml
下面对是这几个文件的代码:
login.jsp
<%@
page
language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<%
String
path
=
request.getContextPath();
String
basePath
=
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
HTML
PUBLIC
"-//W3C//DTD
HTML
4.01
Transitional//EN">