JavaEE(5)——Servlet技术
文章目录
- 1 实验目的
- 2实验注意事项
- 3 实验任务与步骤
- 3.1 Servlet输出表单的全部数据项
- 3.1.1 创建ShowParameterServlet.java
- 3.1.2 编写ServletUtilities.java
- 3.1.3 编写postForm.html
- 3.1.4 编写web.xml配置文件
- 3.1.5 测试运行
- 3.2 用户登录验证功能
- 3.2.1 创建数据库db_user
- 3.2.2 编写DBConn.java
- 3.2.3 编写LoinServlet.java
- 3.2.4 编写login.html
- 3.2.5 编写webcome.jsp
- 3.2.6 编写loginFail.jsp
- 3.2.7 运行测试
- 3.3 Servlet验证码登录功能。
- 3.3.1 编写ImageServlet.java
- 3.3.2 编写LoginImgServlet.java
- 3.3.3 编写web.xml
- 3.3.4 编写log.jsp
- 3.3.5 编写welcome.jsp参考代码如下:
- 3.3.6 编写logFail.jsp
- 3.3.7 运行测试
- 3.4 使用ServletConfig检索Servlet的初始化参数
- 3.4.1 编写ConfigServlet.java
- 3.4.2 编写 web.xml
- 3.4.3 测试运行
- 4 思考题
- 5 实验总结
1 实验目的
- 掌握Servlet工作原理;
- 重点掌握Servlet设计要点;
- 在JSP中灵活运用Servlet。
2实验注意事项
- Servlet向导生成的doGet()方法中使用response.setContentType(“text/html;charset=UTF-8”);避免输出中文乱码;
- 表单提交数据是,应使用:request.setCharacterEncoding(“utf-8”);解决post提交的中文乱码问题;
- Servlet的访问路径是在设计Servlet时由Mapping URL决定的,用户访问Servlet路径为:项目虚拟路径+Mapping URL路径,表单提交或页面跳转时,要注意源文件路径与目标文件URL路径之间的关系,要灵活运用“. /”、 “. ./”、“/”相对路径符号:
“. /”:页面基准路径是当前路径;
“. ./”:上一级路径;
“/”:Web服务器的根路径。
3 实验任务与步骤
3.1 Servlet输出表单的全部数据项
任务描述:
设计一个Servlet接收表单,寻找表单传过来的所有变量名称,并将其放入表格中,没有值或有多个值的变量都突出显示。
首先,通过HttpServletRequest的getParameterNames()方法获取表单中所有变量的名称,该方法返回的是一个枚举类型集合(Enumeration),接下来循环遍历该Enumeration,通过hasMoreElements()方法确定何时结束循环,通nextElement()方法得到集合中各个项,nextElement()方法返回的是Object类型,需要将其强制转换为所需要的String类型。再调用getParameterValues()方法得到字符串数组如果这个数组只有一个元素且为空字符串,说明这个表单变量没有值,Servlet以斜体形式输出“No Value”,如果数组元素个数大于1,说明这个表单变量有多个值,以列表形式输出这些值;其它情况下Servlet直接把变量值放入表格。
3.1.1 创建ShowParameterServlet.java
%PROJECTROOT%/src/exp05/bean/ShowParameterServlet.java 的内容如下:`
package exp05.bean;import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;public class ShowParameterServlet extends HttpServlet {@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();String title = "读取所有请求参数";out.println(ServletUtilities.headWithTitle(title)+ "\n"+ ""
+ title + "\n"+ "\n"+ "\n"+ "参数名字 参数值");Enumeration paramNames = request.getParameterNames();while (paramNames.hasMoreElements()) {String paramName = (String) paramNames.nextElement();out.println("" + paramName + "\n ");String[] paramValues = request.getParameterValues(paramName);if (paramValues.length == 1) {String paramValue = paramValues[0];if (paramValue.length() == 0) {out.print("No Value");} else {out.print(paramValue);}} else {out.println(""
);for (int i = 0; i < paramValues.length; i++) {out.println("" + paramValues[i]);}out.println("");}}out.println("
\n