您的位置:首页 > 理论基础 > 计算机网络

Servlet学习(一)部署servlet

2016-07-18 16:32 399 查看
servlet是运行在任何服务器端的小程序,不仅包括web服务器,还包括email服务器,ftp服务器,http服务器等。

API:

javax servlet API :http://tomcat.apache.org/tomcat-5.5-doc/servletapi/

实现:

如Tomcat,即在tomcat安装目录下lib里的servlet-api.jar

如servlet API中,通用servlet类GenericServlet,子类HttpServlet广泛使用

所有的servlet,都必须实现Servlet这个接口。(javax.servlet.Interface Servlet)

--------------------------------------------------------------------------------------------------------------------------

1. 使用HttpServlet实例

在项目文件夹下的WEB-INF文件下的web.xml配置文件中,配置对应的servlet。

<?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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

<span style="color:#ff0000;"><servlet>
<servlet-name>HW</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HW</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping></span>
</web-app>
这样,在容器中注册了名字(任意自取)为HW的servlet,而且建立了HelloWorldServlet类与url的映射关系,访问此url时,就会调用此类。

注意:url为/HelloWorldServlet是相对于项目根路径(http://127.0.0.1:8080/项目名)的相对路径。

类HelloWorldServlet如下

public class HelloWorldServlet extends HttpServlet{

//什么时候调用doGet方法?当提交的表单form里的属性时get时
//请求对象request:封装了客户端给服务器端的请求信息。(往request对象里写了什么,客户端告诉了服务器端什么)
//相应对象response:封装了服务器端给客户端的相应信息。(往response对象里写了什么,服务器端就给了客户端什么)
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet");
}
}
因此,打开http://127.0.0.1:8080/testServlet/HelloWorldServlet时,通过映射关系,调用HelloWorldServlet类中的doGet方法,

后台打印“doGet”成功。



现在通过response对象从服务器端网客户端写东西。

public class HelloWorldServlet extends HttpServlet{

//什么时候调用doGet方法?当提交的表单form里的属性时get时
//请求对象request:封装了客户端给服务器端的请求信息。(往request对象里写了什么,客户端告诉了服务器端什么)
//相应对象response:封装了服务器端给客户端的相应信息。(往response对象里写了什么,服务器端就给了客户端什么)
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet");
response.getWriter().write("<a href='http://www.bjsxt.com'>go</a>");
}
}
重启tomcat后,页面显示链接go。成功。

这里注意一点:谁是服务器端?Tomcat。 谁是客户端? 我们的页面。所以后台打印语句输出在tomcat的命令行界面,而response输出在我们的页面/HelloWorldServlet.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息