Java Servlet是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理用于生成动态内容。Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立的字节码,可以被动态地加载找到支持Java技术的Web服务器中运行
Servlet的创建
写一个创建servlet的类就是编写一个特殊类的子类,这个特殊的类就是javax.servlet.http包中的HttpServlet类。这样的子类创建的对象习惯上被成为是一个servlet
以下举例实现:
next
Finish
Finish
next
Finish
在打开的页面中
LoginServlet.java
1、重写doGet方法
完整代码:
package myservlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
//1.设置页面请求与响应的编码格式
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//2.利用request对象调用getParamter方法获取表单传送来的用户名和密码
String username=request.getParameter("username");
String password=request.getParameter("password");
//3.利用reponse对象调用getWriter方法获得输出流,再利用该输出流的println方法向页面传送html标记
response.getWriter().println("<html>");
response.getWriter().println("<head>");
response.getWriter().println("<title>登录信息</title>");
response.getWriter().println("</head>");
response.getWriter().println("<body>");
response.getWriter().println("欢迎【"+username+"】用户登录成功!");
response.getWriter().println("</body>");
response.getWriter().println("</html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
编写部署文件web.xml
Servlet类创建后,必须为Tomcat服务器编写一个部署文件,只有这样Tomcat服务器才会按照用户的请求使用Servlet字节码文件创建对象。该部署文件的名字是web.xml,由Tomcat服务器负责管理,并且必须放在WEB-INF目录下。在Eclipse中,该文件自动生成,我们只需要按照需要添加两个标签就可以了,其中第一个声明Servlet对象,在这个标签内我们要设置servlet-name,其中servlet-name是自己给这个servlet对象起的名字。第二个servlet-class,servlet-class就是我们自己创建的servlet文件所在的包及文件的名字。
我们要有一个映射Servlet,在这里面也需要有一个Servlet名字,这里面的servlet-name是我们自己给servlet对象起的名字
url-pattern必须是我们自己给这个对象起的名字,
举例示范:
在这之中输入
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>myservlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
Servlet的运行
具体操作:
新建
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="myservlet" method="get">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录"/>
</form>
</body>
</html>
运行
在这个欢迎界面里面,我们利用表单给servlet送去的用户名 李明 ,通过servlet的html标记,又传送到页面上