Eclipse 和MyEclipse下Servlet Java Web开发(2)

MyEclipse和Eclipse创建Servlet

针对javax.servlet.Servlet

新建一个Web Project,名称为HelloWorld,一路next,注意最后把生成web.xml勾选上。右键src,添加class

包名是com.alex.ss,类名AServlet,interface 后面点击add,让其实现javax.servlet.Servlet

IDE会自动生成AServlet.java的代码,我们在响应请求的方法service中 进行后台打印AServlet is serving your request...

package com.alex.ss;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class AServlet implements Servlet {
    @Override
    public void destroy() {}
    @Override
    public ServletConfig getServletConfig() {return null;}
    @Override
    public String getServletInfo() {return null;}
    @Override
    public void init(ServletConfig arg0) throws ServletException {}
    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        System.out.println("AServlet is serving your request...");
    }}

 最关键的是如何将一URL和该Servlet绑定,当用户请求该URL的时候,由该Servlet对象相应。

在web.xml文件中,<web-app>节点中需要两组节点 ,如下

  <servlet>
      <servlet-name>servletAAA</servlet-name>
      <servlet-class>com.alex.ss.AServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>servletAAA</servlet-name>
      <url-pattern>/AServlet</url-pattern>
  </servlet-mapping>

在这两组节点中,servletAAA名称由程序员决定,需要一致,这样/AServlet和类com.alex.ss.AServlet就对应上了。

访问http://localhost:8080/HelloWorld/AServlet的时候,系统在后台打印数据。

 针对javax.servlet.http.HttpServlet

在刚才的基础上,右键src 新建一个servlet,此时默认就是HttpServlet

使用MyEclipse

下一步关键是servlet mapping,和上面类似写成/BServlet

此时IDE会在你刚才web.xml文件添加如下内容

。。。。。
<servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>BServlet</servlet-name>
    <servlet-class>com.alex.ss.BServlet</servlet-class>
  </servlet>

。。。。。。。
<servlet-mapping>
    <servlet-name>BServlet</servlet-name>
    <url-pattern>/BServlet</url-pattern>
  </servlet-mapping>

访问http://127.0.0.1:8080/HelloWorld/BServlet,doGet方法返回对应信息。

如果是Eclipse的话

下一步,采用默认,关键就是servlet的name和URL mapping,其余不用

注意关键点:在web.xml文件中配置显得很罗嗦,Eclipse在类BServlet前面使用annotation

来指定类和URL的关系

ServletContext 的使用

1.获取ServletContext对象

对于实现Servlet接口的类

在init方法中

@Override
    public void init(ServletConfig arg0) throws ServletException {
        ServletContext sc= arg0.getServletContext();

对于实现HttpServlet接口的类

所有的方法都可以使用

ServletContext sc=this.getServletContext();

2.使用ServletContext

主要是setAttribute 和getAttribute方法,

setAttribute(String arg0, Object arg1)
getAttribute(String arg)
 
原文地址:https://www.cnblogs.com/legion/p/9051207.html