1、对Servlet的理解
Servlet是一种Java类。
Servlet能够完成与JSP相同的功能。能够接收用户的请求,能够调用功能类的方法,可以对用户进行响应。
Servlet和JSP同属于Java EE中Web层组件。
2、如何编写一个Servlet
假设:该Servlet的功能为显示欢迎信息。
Java文件的编写过程:(1)声明包 (2)引入用到的其他的类 (3)类的编写
对于类:(1)类头——修饰符 class关键字 类名 继承父类 实现接口
(2)类体——成员变量 构造方法 对属性进行操作的方法 功能类方法
对于成员变量:修饰符 类型 变量名(对象名)
对于方法(不包括构造方法):修饰符 返回值类型 方法名 参数列表 异常列表 方法体
对于方法体:变量的声明 各种运算 调用其他的方法 返回结果
(1)声明包,假设包名为servlet
package servlet;
(2)引入用到的类,javax.servlet.* javax.servlet.http.* java.io.*
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
(3)类头的定义
访问控制符:public
类名:HelloServlet
继承父类:javax.servlet.http.HttpServlet
实现接口:没有要实现的接口
public class HelloServlet extends HttpServlet
(4)方法的定义
主要的方法:init方法(用于初始化) destroy方法(释放资源) doGet或者doPost(完成主要功能)
通常主要实现doGet方法或者doPost方法,分别对应客户端的get请求和post请求。
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
// 设置编码方式
response.setContentType("text/html;charset=gb2312");
// 得到输出流对象
PrintWriter out = response.getWriter();
out.println("欢迎学习JSP!");
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
doGet(request,response);
}
3、编译存放
需要用到javax.servlet.*和javax.servlet.http.*,两个包的实现在tomcat下面的lib中,名字为servlet-api.jar。
放在(编译后的Servlet):WEB-INF/classes
配置path: 把C:\Program Files\Java\jdk1.6.0\bin添加到path中,但是不能破坏原有的路径。
配置classpath:把C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;添加到classpath中。
编译:在命令行方式下进入到classes目录,然后使用 javac -d . HelloServlet.java -d表示生成包的路径,.表示在当前位置生成。
4、配置Servlet
配置文件及位置:WEB-INF下面的web.xml。
配置包括两个方面:Servlet的声明 以及 Servlet访问方式的声明
Servlet的声明:
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
其中,<servlet-name>表示这个servlet的名字,可以随便起。<servlet-class>是对应的Servlet类,应该包含包的信息。
Servlet访问方式的声明:
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
其中,<servlet-name>和Servlet声明中的用法相同,并且应该与Servlet声明中的名字保持一致。<url-pattern>表示访问方式,决定了在客户端如何访问这个Servlet。
5、访问Servlet
http://127.0.0.1:8080/bookstore/hello
6、用Servlet完成login_process.jsp的功能
login_process.jsp主要功能,判断用户输入的用户名和口令是否合法,然后根据判断的结果选择界面对用户响应。
对于JSP文件来说,优势在于显示信息,login_process.jsp中的代码都不是显示信息的,主要用于控制。在Java Web应用中存在大量的这种现象。是Java Web中的控制功能。主要使用Servlet完成控制。
login_process.jsp的基本功能:获取用户的输入信息;进行判断;转向。
如果使用Servlet完成,功能代码应该写在doGet或者doPost方法中。对应上面的3个功能分别实现如下:
获取用户信息:用户信息存储在doGet或者doPost方法的第一个参数中,所以从参数中获取,获取的代码为
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
判断:
if( username.equals("zhangsan") && userpass.equals("zhangsan") )
转向响应界面:
第一种方式:response.sendRedirect("index.jsp");
第二种方式:与<jsp:forward>功能相同
RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); // 参数是要转向的页面
rd.forward(request,response); // 完成跳转
LoginProcessServlet.java代码如下:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginProcessServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
// 获取用户输入的信息
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
if( username.equals("zhangsan") && userpass.equals("zhangsan") )
{
RequestDispatcher rd = request.getRequestDispatcher("success.jsp"); // 跳转到成功的页面
rd.forward(request,response); // 完成跳转
}else
{
RequestDispatcher rd = request.getRequestDispatcher("index1.jsp"); // 跳转到登录页面
rd.forward(request,response); // 完成跳转
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
doGet(request,response);
}
}
配置文件中添加如下代码:
<servlet>
<servlet-name>login_process</servlet-name>
<servlet-class>servlet.LoginProcessServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login_process</servlet-name>
<url-pattern>/login_process</url-pattern>
</servlet-mapping>
修改index1.jsp的代码(修改form所在行),修改前:
<form action="login_process.jsp" method="post">
修改后:
<form action="login_process" method="post">
相关推荐
Servlet详解 Servlet详解 Servlet详解
Servlet详解.pdf f
Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。
Servlet的定义 Servlet是运行在服务器端的Java程序,能够接收和响应客户端的请求,主要用于处理客户端与服务器之间的数据交互。 Servlet的功能 Servlet具有处理客户端请求、生成动态内容、访问数据库、发送电子邮件...
java web 之servlet详细介绍 servlet的原理、接口
这本书经典啊,对servlet有兴趣的可以下载
servlet 开发环境,一些servlet的具体用法
主要介绍了jsp 编程之@WebServlet详解的相关资料,需要的朋友可以参考下
主要介绍了struts1之ActionServlet详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
HttpServlet 的Servlet的详解
Servlet基础教程 http原理 request, response
Servlet JSP深入详解 基于Tomcat的Web开发
servlet生命周期详解
文章目录一、Servlet 的定义二、Servlet 的生命周期1、Servlet 出生2、Servlet 服务3、Servlet 销毁三、Servlet 中的接口1、ServletRequest 和 ServletResponse2、ServletRequest3、ServletResponse4、ServletConfig...
servlet过滤器详解
servlet/jsp深入详解源代码
servlet/jsp深入详解 基于tomcat的web开发