servlet:位于web服务器内部服务端的Java程序
一、作用
接收客户端请求,响应客户端数据
二、基本方法
- init
说明:初始化,默认在第一次调用的时候初始化,通常只调用一次 - destory
说明:清除初始化,在代码更新的时候一般会先destory再init - doGet
说明:当提交方式是get的时候,默认调用的方法,可以接收请求或是响应 - doPost
说明:当提交方式是post的时候,默认调用的方法,可以接收请求或是响应
三、目录
在eclipse里面,可以直接创建动态的web工程,也可以手动创建
更改class创建的位置:
选中工程->右键Properties(Alt+enter)->Java Build Path->Source->Browse
四、创建
在eclipse里面,可以直接创建servlet,也可以创建普通的类,需要继承HttpServlet
注:若是运行环境(Target Runtime)为Tomcat则可以直接导包(在Tomcat中lib里有),否则手动导包。
五、注册、映射
WEB-INF->web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>web</display-name>
<!--打开的时候就加载的文件 -->
<welcome-file-list>
<welcome-file>test.html</welcome-file>
</welcome-file-list>
<!--注册 -->
<servlet>
<servlet-name>Hello</servlet-name> <!--servlet名字 -->
<servlet-class>servlet.Hello</servlet-class><!--路径 -->
<load-on-startup>1</load-on-startup><!--正数表示在启动的时候自动初始化,数字表示顺序,数字越大越后-->
</servlet>
<!--映射-->
<servlet-mapping>
<servlet-name>Hello</servlet-name><!--同上面的servlet名字对应,则表示是其的映射 -->
<url-pattern>/H.servlet</url-pattern><!--访问的地址 -->
</servlet-mapping>
</web-app>
六、接收请求、响应数据
html
<body>
<h1>开始测试</h1>
<form action="H.servlet" method="post" id="userform">
<lable>用户名:</lable><input value="" name="username" id="username"></input><br>
<lable>密 码:</lable><input value="" type="password" name="password"></input><br>
<input type="submit" value="注册"></input>
</form>
</body>
Java
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet```");
System.out.println("正在执行...");
//接收请求
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username + "--" + password);
//响应数据
PrintWriter pw = resp.getWriter();
pw.print(username + "--" + password);
pw.close();
System.out.println("执行完毕...");
}