赞
踩
目录
2、Web站点、Web应用、HTTP服务器、Web应用服务器
C/S
Client/Server:客户端/服务器的简称,又称为胖客户端,需要在电脑上安装特定的软件.例如:QQ
RIA
1、定义:Rich Internet Applications:富客户端网络应用
2、目标:
Tomcat的官网
1.进入conf文件夹
2.打开logging.properties文件
3.修改java.util.logging.ConsoleHandler.encoding = GBK
- /**
- * 浏览器地址栏输入http://localhost:8080/hello会调用servlet的doGet()方法
- * @param request 请求对象.取得请求的数据(浏览器传过来的数据)
- * @param response 响应对象.返回浏览器数据放在该对象中
- * @throws ServletException
- * @throws IOException
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- //生成动态的内容返回到浏览器显示
- // 取得响应的输出流对象
- PrintWriter out = response.getWriter();
- // 向out输出流对象写内容浏览器就能接收到,并在页面进行显示
- out.print("Hello Servlet!");
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
- <!--配置Servlet,可以手动配置-->
- <servlet>
- <!--Servlet的名称-->
- <servlet-name>HelloServlet</servlet-name>
- <!--servlet类的全路径名-->
- <servlet-class>com.tjetc.servlet.HelloServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <!--Servlet的名称-->
- <servlet-name>HelloServlet</servlet-name>
- <!--外部访问servlet的url,初学者写/开头-->
- <url-pattern>/hello</url-pattern>
- </servlet-mapping>
- </web-app>
Tomcat如何找到servlet并实例化的?
第一步:在浏览器地址栏输入访问路径,向服务器发送请求;
第二步:服务器根据访问路径去web.xml文件中和<url-pattern>标签中的虚拟路径进行匹配,匹配成功后,找到已注册的servlet名称;
第三步:根据映射找到对应的servlet名,注意:<servlet-mapping>下的<servlet-name>标签和<servlet>下的<servlet-name>标签中的值必须相同;
第四步:根据servlet名找到全限定类名,即我们自己写的类。
服务器找到全限定类名后,通过反射调用Class对象的newInstance()方法,实例化一个如:HelloServlet对象,注意一定要为HelloServlet提供一个无参的构造方法。同时也创建了servletConfig,里面存放了一些初始化信息(注意:服务器只会创建一次HelloServlet对象,所以servletConfig也只有一个)。
- package com.tjetc;
-
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
-
- public class HelloServlet extends HttpServlet {
- public HelloServlet() {
- System.out.println("构造方法HelloServlet()...");
- }
-
- @Override
- public void init(ServletConfig config) throws ServletException {
- System.out.println("初始化init(config)有参");
- super.init(config);
- }
-
- @Override
- public void init() throws ServletException {
- System.out.println("初始化init()无参");
- super.init();
- }
-
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- System.out.println("service()...");
- super.service(req, resp);
- }
-
- //接收get请求
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- System.out.println("doGet()...");
- // int i = 1 / 0;//java.lang.ArithmeticException: / by zero
- // doPost(req, resp);
-
- //设置编码
- resp.setContentType("text/html;charset=utf-8");
-
- StringBuilder sb=new StringBuilder();
- sb.append("<table border='1', cellspacing='0'>");
- sb.append("<tr>");
- sb.append("<td>序号</td><td>姓名</td><td>年龄</td>");
- sb.append("<tr>");
- sb.append("</tr>");
- sb.append("<td>1</td><td>张三</td><td>19</td>");
- sb.append("<tr>");
- sb.append("</tr>");
- sb.append("<td>2</td><td>李四</td><td>20</td>");
- sb.append("</tr>");
- sb.append("</table>");
- //输出字符串
- resp.getWriter().write(sb.toString());
- }
-
- //接收post请求
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- System.out.println("doPost()...");
- //获取输入流
- PrintWriter writer = resp.getWriter();
- //把字符串输出到页面中
- writer.write("<h1>Hello Servlet i am coming</h1>");
- }
-
- @Override
- public void destroy() {
- System.out.println("destroy()...");
- super.destroy();
- }
- }
1、Tomcat启动,各个方法没有执行
2、第一次访问的时候执行顺序:
3、第二次以及以后访问的时候执行顺序
4、执行次数
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。