目录
一、Web站点的建立
二、创建 Servlet的三种方法
一、Web站点的建立
当客户端提交请求的时候,由tomcat容器之类的Web容载入并运行,然后将生成的动态页面返回给客户端。
如何能让Web容器找到编写好的Servlet文件呢,这就需要建立一个Web站点,并对站点进行配置。
Tomcat中有一个webapps文件,相当于默认站点,可以在这个文件中通过 下面的步骤来创建一个Web站点。
1.定义站点名。
2.创建WEB-INFO文件,这个文件用来存放Web站点的配置文件,自己编写的类和程序中用到的JAR包。
3.创建一个web.xml文件,这个是web的本地配置文件。
4.创建class文件,在WEB-INFO文件下创建一个classes文件夹,用来存放编写的class文件。
二、创建 Servlet的三种方法
Servlet是运行在tomcat之类的web容器中,需要进行配置,容器通过配置信息读取Servlet。
1.创建Servlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Hello implements Servlet{
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig config) throws ServletException {
}
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
PrintWriter pw = res.getWriter() ;
pw.println("hello");
}
}
2.配置web.xml文件
每一个编写好的Servlet都要在web.xml中进行配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.chuiyuan.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/servlet/Hello</url-pattern>
</servlet-mapping>
</web-app>
里面的servlet-name可以是任意的,后面的servlet-mapping中name和它一样就可以了。
由于 tomcat在启动的时候 载入web.xml文件,所以web.xml文件一经修改,服务器就要重启才会有效果。
在上面的Hello的同一个包里面,编写 Hello1.class
d
package com.chuiyuan;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Hello1 extends GenericServlet{
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
try {
PrintWriter out = res.getWriter();
out.print("Hello1");
} catch (Exception e) {
// TODO: handle exception
}
}
}
在同一个包里面编写 Hello2.class. HttpServlet是最常用的。
package com.chuiyuan;
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;
public class Hello2 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try {
PrintWriter out = resp.getWriter() ;
out.println("Hello2");
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp); //引用 doGet,避免代码重复
}
}
<!-- hello1 -->
<servlet>
<servlet-name>hello1</servlet-name>
<servlet-class>com.chuiyuan.Hello1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello1</servlet-name>
<url-pattern>/servlet/Hello1</url-pattern>
</servlet-mapping>
<!-- hello2 -->
<servlet>
<servlet-name>hello2</servlet-name>
<servlet-class>com.chuiyuan.Hello2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello2</servlet-name>
<url-pattern>/servlet/Hello2</url-pattern>
</servlet-mapping>
我们通过 http://localhost:8080/Hello/servlet/Hello2来访问。
原文:http://www.cnblogs.com/chuiyuan/p/4553733.html