Tomcat中Servlet类的原理

xiaoxiao2021-02-28  152

Tomcat执行的事情为:向服务器发起连接,接受浏览器发送的请求,响应浏览器的请求,关闭连接

首先,需要知道Servlet是什么东西,在自己新建的类中为什么可以不需要main函数就可以运行在web上。

Servlet是运行在服务器端的Java应用程序,可以生成动态的web。不需要main函数就可以运行,是由于java的反射机制,在Tomcat中应用java的反射机制来生成一个Servlet对象,并通过这个对象来获取Servlet中的方法(如doGet(),doPost(),service())。

给代码演示

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // response.getWriter().append("Served at: ").append(request.getContextPath()); String name = request.getParameter("username"); System.out.println(name); response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<div>hobby<ul><li>swimming</li><li>play game</li></ul></div>"); // pw.println("<span><p>Hello</p></span>"); // pw.println(str); pw.flush(); pw.close(); }

在上面的doGet()方法中,提到的HttpServletRequest与HttpServletResponse两个类实现方法与Servlet实现方法是一样的,也是通过java的反射机制。前者是浏览器传过来的数据包,后者是响应数据包。上面代码提到的只是简单的演示。

浏览器上有一个表单属性,通过submit按钮来提交整个表单的属性,之后通过request.getParmeter("name"),其中name为表单中标签的name属性。通过此种方法即可获取浏览器发送form表单中的数据。

响应请求,发送数据包给浏览器,这是一个读写的过程,通过调用java.io中的输入输出流来给数据包中写入数据。如此一个简单的B/S开发就完成了。

最后,新人上路,还有许多不明白之处,不足之处请指出。

转载请注明原文地址: https://www.6miu.com/read-31860.html

最新回复(0)