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开发就完成了。
最后,新人上路,还有许多不明白之处,不足之处请指出。