水平有限,如有技术问题,请提出,谢谢!!!
下面描写的是一段超级简单的doPost方法,可以使用HttpServletRequest对象里的request.getParameter()方法接收来自页面表单的数据。
比如:
request.getParameter("UserName");
这个方法表面接受页面表单名为UserName的数据。
页面:
<form method="post" action="/Film/servlet/UserRegister">
用户名:<input type="text" name="UserName"><br>
package app.user.action;
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 core.security.MD5;
import app.user.service.UserService;
public class UserRegisterAction extends HttpServlet {
private UserService userService=new UserService();
private String userName;
private String passWord;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//JS弹出中文,解决乱码
response.setCharacterEncoding("GB2312");
userName=request.getParameter("UserName");
passWord=request.getParameter("PassWord");
PrintWriter out=response.getWriter();
if(request.getParameter("PassWord2").equals(passWord)&&userName!=null&&userName.length()!=0){
userService.saveUserInformationByRegister(userName,MD5.getMD5(passWord));
out.print("<script language='javascript'>alert('注册成功!');window.location.href='/Film/index.jsp';</script>");
}else{
out.print("<script language='javascript'>alert('填写错误!请重新填写.');window.location.href='/Film/servlet/registerUser.jsp';</script>");
}
}
}
之后,我们需要在web.xml文件里配置这个servlet。
<servlet>
<servlet-name>UserRegister</servlet-name>
<servlet-class>app.user.action.UserRegister</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserRegister</servlet-name>
<url-pattern>/servlet/UserRegister</url-pattern>
</servlet-mapping>
引用
这里的
<servlet-name> UserRegister </servlet-name>
使用servlet-name定义servlet的名称,名称可以随意,一般选取有意义的名称。
<servlet-class>app.user.action.UserRegister</servlet-class>
servlet用来定义由哪一个类来处理用户的请求。形式为:包名+类名
<servlet-mapping>
<servlet-name>UserRegister</servlet-name>
该名称与上面定义的servlet名要一致。
<url-pattern>/servlet/UserRegister</url-pattern>
定义servlet的表现形式,也就是用户在浏览器的地址栏输入的一部分url地址。
OK,到这里这个servlet算是完成了。
首先,使你的类继承HttpServlet类,让我们来看一看HttpServlet类的原码:
package javax.servlet.http;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.ResourceBundle;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public abstract class HttpServlet extends GenericServlet
implements Serializable
这里可以看见HttpServlet类继承GenericServlet类,而且继承了Serializable接口,我们来看一看GenericServlet的原码:
package javax.servlet;
import java.io.IOException;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.ResourceBundle;
public abstract class GenericServlet
implements Servlet, ServletConfig, Serializable
里面也没什么。重点还是在HttpServlet这个类。
这个类里实现了几个HTTP协议请求的方法。比如:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String protocol = req.getProtocol();
String msg = lStrings.getString("http.method_post_not_supported");
if (protocol.endsWith("1.1"))
resp.sendError(405, msg);
else
resp.sendError(400, msg);
}
因为我们在自己的类里覆盖了doPost方法,所以这里不会向页面发 resp.sendError(405, msg);或 resp.sendError(400, msg);错误。
HttpServlet类里的service方法实现了GenericServlet基类的service抽象方法。
首先,进行request = (HttpServletRequest)req;response = (HttpServletResponse)res;
转换,成功之后,掉用service(request, response);下面代码展现了这一过程。
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
HttpServletRequest request;
HttpServletResponse response;
try
{
request = (HttpServletRequest)req;
response = (HttpServletResponse)res;
} catch (ClassCastException e) {
throw new ServletException("non-HTTP request or response");
}
service(request, response);
}
}
之后,调用下面的service(request, response);方法。
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
long lastModified;
String method = req.getMethod();
if (method.equals("GET")) {
lastModified = getLastModified(req);
if (lastModified == -1L)
{
doGet(req, resp);
} else {
long ifModifiedSince = req.getDateHeader("If-Modified-Since");
if (ifModifiedSince < lastModified / 1000L * 1000L)
{
maybeSetLastModified(resp, lastModified);
doGet(req, resp);
} else {
resp.setStatus(304);
}
}
}
else if (method.equals("HEAD")) {
lastModified = getLastModified(req);
maybeSetLastModified(resp, lastModified);
doHead(req, resp);
}
else if (method.equals("POST")) {
doPost(req, resp);
}
else if (method.equals("PUT")) {
doPut(req, resp);
}
else if (method.equals("DELETE")) {
doDelete(req, resp);
}
else if (method.equals("OPTIONS")) {
doOptions(req, resp);
}
else if (method.equals("TRACE")) {
doTrace(req, resp);
}
else
{
String errMsg = lStrings.getString("http.method_not_implemented");
Object[] errArgs = new Object[1];
errArgs[0] = method;
errMsg = MessageFormat.format(errMsg, errArgs);
resp.sendError(501, errMsg);
}
}
这里可以看见,根据我们传入的请求和响应对象,判断应该执行哪个方法。
分享到:
相关推荐
jsp+servlet编写的验证码程序是一个简单的验证码生成程序,使用jsp和servlet技术来生成验证码。该程序使用了java.awt包来生成随机颜色和随机字符,并使用java.awt.image.BufferedImage类来生成验证码图片。该程序...
在MyEclipse这样的集成开发环境中,你可以创建Servlet项目,编写Servlet类,并配置Web.xml文件来映射HTTP请求。MyEclipse是一个强大的工具,提供了便捷的Servlet开发和调试环境。 在实现聊天程序时,Servlet将扮演...
在实际操作中,我们可以按照以下步骤来编写JSP+JavaBean+Servlet的程序: 1. 创建JavaBean类:定义一个Java类,封装必要的属性和方法,以代表业务实体或处理业务逻辑。 2. 编写JSP页面:使用JSP语法创建用户界面,...
`servlet.jar.zip`是一个压缩包,专门用于servlet程序的开发。它包含的核心组件`servlet.jar`是Java Servlet容器(如Tomcat、Jetty等)运行Servlet应用的关键。开发者在构建web应用时,通常会将此jar包添加到项目的...
在这个"手工编写Servlet的详细过程+实例"中,我们将深入探讨如何从零开始创建一个Servlet,包括Servlet的生命周期、部署描述符的配置以及实际编程步骤。首先,我们来理解Servlet的基本概念。 Servlet是一种Java类,...
使用 Eclipse 创建第一个 Servlet 程序 Servlet 是 Java 语言中的一种基于服务器端的组件,用于生成动态网页。使用 Eclipse 创建 Servlet 程序需要了解 Servlet 的基本概念、Tomcat 容器的结构、自定义 Servlet 的...
这个简单的程序调用示例旨在展示它们如何协同工作。 首先,我们来看`JSP`。`JSP`是一种用于创建动态网页的技术,它允许开发者在HTML页面中嵌入Java代码。JSP文件在服务器端执行,生成HTML响应,然后发送到客户端。...
【标题】"用eclipse 编写的servlet小demo"是一个简单的Java Web项目,它展示了如何在Eclipse集成开发环境中创建和运行一个Servlet程序。Servlet是Java编程语言中用于扩展服务器功能的Java类,通常用于处理HTTP请求。...
根据以前提供的NumberGuessBean.java文件(模型类),编写SERVLET程序,实现猜数游戏。 重点考察: HttpServletRequest, HttpSession 猜数游戏可以参考TOMCAT提供的JSP 1.2 EXAMPLES
在这个"Servlet写的聊天程序"中,开发者利用Servlet技术构建了一个多人聊天平台,实现了用户之间的实时交流。接下来,我们将深入探讨这个项目中涉及的关键知识点。 1. **Servlet**: Servlet是Java API的一部分,...
本文将详细探讨如何编写一个Openfire插件,其中包含Servlet小服务程序的实现。 首先,我们需要了解Openfire插件的基本结构。一个Openfire插件通常由以下几个部分组成: 1. **plugin.xml**:这是插件的核心配置文件...
在"Servlet学习demo程序"中,我们可能找到了一个名为ServletDemo的示例,这个例子可能是为了演示如何创建和运行一个简单的Servlet。 要入门Servlet,你需要理解以下几个关键概念: 1. **Servlet生命周期**:...
通过这个"Servlet编写登录"的示例,你可以学习到Servlet的基本操作,包括如何处理HTTP请求,如何与数据库交互,以及如何实现简单的用户认证。随着对Servlet理解的深入,你可以进一步掌握Java Web开发的更多技巧和...
JavaServlet程序设计初步是IT领域中关于Web开发的一项基础技术,它是Java EE(企业版)平台的一部分,用于构建动态Web应用程序。本节将深入探讨JavaServlet的核心概念、工作原理以及如何进行基本的程序设计。 一、...
1. **编写Servlet类**:例如,`HelloWorld`类继承自`HttpServlet`,并重写`doGet`方法来处理GET请求。在这个例子中,Servlet向客户端发送“Hello World!”的响应。 2. **设置开发环境**:确保类路径包含Servlet API...
Servlet程序开发是Web应用程序开发的重要组成部分,特别是在Java平台上。Servlet是一种Java类,它扩展了服务器的功能,能够处理HTTP请求并生成动态内容。本教程聚焦于Servlet的深入学习,旨在帮助开发者掌握这一关键...
编写Servlet通常涉及以下步骤: 1. 继承 `javax.servlet.http.HttpServlet` 类或实现 `javax.servlet.Servlet` 接口。 2. 重写 `doGet()` 和/或 `doPost()` 方法,以处理HTTP请求。 3. 可选地,重写 `init()` 和 `...
接下来,我们将详细介绍如何编写一个简单的Servlet。 1. **导入必要的包**: - `javax.servlet.http.HttpServlet`:这是所有HTTP Servlet的基类。 - `javax.servlet.http.HttpServletRequest` 和 `javax.servlet....
在描述中提到“代码简单易懂”,这意味着这个煤炭系统中的Servlet实现可能包含清晰的逻辑结构和注释,方便学习和理解。通常,Servlet的编写包括以下步骤: 1. 导入必要的库,如`javax.servlet.*`和`javax.servlet....
2)servlet程序CheckValue.java:对提交的注册信息进行有效性检查,如性别是否正确,密码是否一致、电话号码位数或是否全是数字、邮箱中@的检查等;如检查中有一个或多个未正确,给出提示信息并转去重新执行注册文件...