编写一个Servlet,作用是能够在服务器端输出一句话::"你好,欢迎来到JavaWeb世界!”

编写一个Servlet,作用是能够在服务器端输出一句话::"你好,欢迎来到JavaWeb世界!”,第1张

servlet中有四个方法,第一个init();这个方法是servlet加载的时候首先执行的方法,这个方法你就不用动了,第二个doGet();你要是在这个方法里写,就这样写:

responsesetContentType("text/html");

PrintWriter out = responsegetWriter();

outprintln("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 401 Transitional//EN\">");

outprintln("<HTML>");

outprintln(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");

outprintln(" <BODY>");

outprint("你好,欢迎来到JavaWeb世界!");

outprintln(" </BODY>");

outprintln("</HTML>");

outflush();

outclose();

然后在第三个doPost()方法中写上,thisdoGet();

如果你要把东西写在doPost()方法中,在doGet()方法中写上thisdoPost();,把需要写的东西写到doPost()方法中;

第四个方法是destroy();方法,这个方法是执行完servlet后,将其销毁的方法

然后就是webxml配置,怎么配置,1楼已经写好了

doGet()和doPost()方法的区别简单解析:(ps:个人总结,不代表官方意见)

doGet()方法是将指定的值传到后台,而doPost()方法是将页面上的所有的值传到后台,

就安全角度而言,doGet()方法不安全,因为doGet()的传值方法是通过XXservletname=""&id=""这种形式传递的,这中传值,将数据显示到浏览器地址栏中,所以说不安全

而doPost()方法,是隐式传参,用户看不到你所传的数据,说以是安全的

就效率角度而言,doGet()方法比doPost()方法快,因为它是将指定的某个值传给servlet,而doPost()方法是将所有的值传给servlet,所以效率快

希望对你有所帮助

Servlet是Java对于Web开发而产生的一项技术。

可以说Servlet技术是Java专有的,它是服务器端的技术,客户端通常是浏览器,Servlet提供了请求/响应模式,是JAVA的一种规范,只能使用于Java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。

规定了四个范围:pageContext、request、session、application。一定依赖于各种Servlet容器,但Servlet只能接受一个简单的http请求。

在 JavaWeb 项目中,处理请求和发送响应的过程是由一种叫做 Servlet 的程序来完成的,并且 Servlet 是为了解决实现动态页面而衍生的东西。

简单来讲:Servlet其实就是一个遵循Servlet开发的java类,Serlvet是由服务器调用的,运行在服务器端。

一张图描述 Servler 在 B/S 中的作用点:

2 Tomcat 和 Servlet 的关系

Tomcat 是Web应用服务器,是一个Servlet/JSP容器。 Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户,而 Servlet 是一种运行在支持 Java 语言的服务器上的组件。

Servlet 最常见的用途是扩展 Java Web 服务器功能,提供非常安全的、可移植的、易于使用的 CGI 替代品。

从 Http 协议中的请求和响应可以得知,浏览器发出的请求是一个请求文本,而浏览器接收到的也应该是一个响应文本。但是在上面这个图中,并不知道是如何转变的,只知道浏览器发送过来的请求也就是 request,我们响应回去的就用 response。忽略了其中的细节,现在就来探究一下。

①:Tomcat 将 Http 请求文本接收并解析,然后封装成 HttpServletRequest 类型的 request 对象,所有的 Http 头数据读可以通过request 对象调用对应的方法查询到。

②:Tomcat 同时会要响应的信息封装为 HttpServletResponse 类型的response 对象,通过设置 response 属性就可以控制要输出到浏览器的内容,然后将 response 交给 Tomcat,Tomcat 就会将其变成响应文本的格式发送给浏览器。

Java Servlet API 是Servlet容器(tomcat)和servlet之间的接口,它定义了Serlvet 的各种方法,还定义了 Servlet 容器传送给 Servlet 的对象类,其中最重要的就是 ServletRequest 和 ServletResponse 。所以说我们在编写Servlet时,需要实现 Servlet 接口,按照其规范进行操作。

3 Servlet 接口主要方法

Servlet 接口主要的 3 个方法:

init()方法:只会调用一次,只是在创建servlet实例的时候才会创建。

service()方法:是进行数据处理的,只要接受了一次请求,就会被调用一次

destroy()方法:销毁 Servlet 对象的时候调用。停止服务器或者重新部署 Web 应用时销毁 Servlet 对象,同样也是调用一次

4 编写 Servlet

首先说明一点疑惑,有时候我们在一些资料上看到别人这样写:

public class TestServlet implements Servlet {

    init()

    service()

    getServletConfig()

    

}

而在这我们要继承 HttpServlet类 那么问题来了,继承HttpServlet 和实现Servlet 有什么区别?

首先,直观的不同,Servlet 是一个接口,如果实现这个接口,那么就必须实现接口里面定义的所有方法。

而 HttpServlet 实现了 Servlet 接口,并把 Servlet 接口中的方法实现了。

继承 Httpservelt,实际上也就实现了 Servlet 接口。

但是我们没必要再去实现 Servlet 中定义的生命周期方法,因为在 Httpservlet 中已经有了默认实现,并且这些默认实现也挺规范和实用, doget 和 dopost 是执行用户请求的终点,get 请求会调用 doget 方法,post 请求会执行 dopost 方法,我们可以在这2个方法中定义我们自己的业务逻辑。

最后,HttpServlet 在实现 Servlet 接口的时候,已经实现了 Servlet 中所有的方法,因此继承自 HttpSrvlet 的类,不需要再去覆写相应的生命周期等方法。

41 编写Java类,继承HttpServlet

创建一个 MyServlet java 类,继承 HttpServlet 实现 service 方法:

public class MyServlet extends HttpServlet {

    @Override

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //设置字符编码

        requestsetCharacterEncoding("utf8");

        //从 request 对象中获取username,password

        String username = requestgetParameter("username");

        String password = requestgetParameter("password");

        requestsetAttribute("username",username);

        requestsetAttribute("password",password);

        requestgetRequestDispatcher( "/index2jsp")forward(request, response);;

    }

}

42 配置webxml文件

webxml 配置 Servlet 访问路径,能让别人通过链接访问到你的 Servlet:

<web-app>

  <display-name>Archetype Created Web Application</display-name>

    <servlet>

        <servlet-name>MyServlet</servlet-name>

        <servlet-class>clubsscaidemoMyServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>MyServlet</servlet-name>

        <url-pattern>/MyServlet</url-pattern>

    </servlet-mapping>

</web-app>

43 jsp 界面显示

index2jsp:

<html>

<body>

<h2>2222222</h2>

username: <%=requestgetParameter("username") %>

<br>

password: <%=requestgetParameter("password") %>

</body>

</html>

webxml中servlet的配置

元素是配置Servlet所用的元素。

元素在Servlet和URL样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问你的servlet。

下面给出一段配置代码:

ServletName

xxxpackagexxxServlet

参数名称

参数值

ServletName

/aaa/xxx

在地址栏中输入http://localhost:8080/web-App/aaa/xxx就可以访问了。

缺省Servlet

1如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。

2凡是在webxml文件中找不到匹配的元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。

3在\conf\webxml文件中,注册了一个名称为orgapachecatalinaservletsDefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。

当访问Tomcat服务器中的某个静态HTML文件和时,实际上是在访问这个缺省Servlet。

例1--缺省Servlet:

action

orgspringframeworkwebservletDispatcherServlet

contextConfigLocation

/WEB-INF/config/spring-mvcxml

action

/

例2:

dispatcherServlet

orgspringframeworkwebservletDispatcherServlet

contextConfigLocation

/WEB-INF/config/spring-mvcxml

dispatcherServlet

do

参考:http://wwwcnblogscom/wql025/p/4804977html

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 编写一个Servlet,作用是能够在服务器端输出一句话::"你好,欢迎来到JavaWeb世界!”

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情