Javaweb

  1. tomcat软件安装在linux系统上,用于运行Java程序和web程序(tomcat也叫web服务器,因为tomcat也运行web项目)

tomcat:浏览器和服务器交互的过程

在这里插入图片描述

  1. 根据浏览器URL地址栏中的IP和端口号找到对应的web服务器
  2. 浏览器以流的形式向服务器发送网络请求,告诉服务器需要哪些资源 GET /JavaWebDemo1/1.jsp HTTP/1.1
  3. 服务器会解析请求 GET /JavaWebDemo1/1.jsp HTTP/1.1,将静态网页以流的形式返回给浏览器
  4. 同时,请求动态的数据,服务器解析后将数据作为响应结果返回到浏览器上
  1. tomcat中的目录文件
    在这里插入图片描述

tomcat:虚拟目录的映射

  1. .将写好的web程序交给web服务器管理,这个过程成为虚拟目录的映射:直接将项目放到webapps目录中(localhost:端口号/项目名/参数
  2. 每次修改config目录下的server.xml文件,tomcat服务器就要重启读取server.xml配置文件

计网:5层模型

ISO5层协议
应用层HTTP,FTP:文件传输协议,SMTP:邮件传输协议
传输层TCP,UDP
网络层IP
物理层网络接口
链路层硬件

计网:HTTP

  1. http:是超文本传输协议,基于TCP/IP的应用层协议,浏览器和服务器在传输数据时需要遵守http指定的规则
  2. HTTP请求:客户端向服务器请求一个web资源成为HTTP请求
  3. HTTP常见状态码:(状态码表示的是服务器对请求的处理结果)
状态码描述
100请求成功,客户端要继续提交请求来完成整个操作
200成功
300为完成整个过程要继续请求,通常是重定向,常见的302,304
400客户端出错,常见404
500服务器端内部出错,常见500
  1. HTTP1.1允许在一个连接上,请求多个web资源,有7种请求方式:get,post,put,delete,(分别对应CRUD)trace,head,options
i请求方式描述
get用于请求数据
post用于提交数据
put和get很像,用于更新数据
delete删除数据

计网:get/post的区别

getpost
参数在地址栏可见参数,不安全,所以大众可见的数据用get请求参数在请求头中
用于请求数据用于提交数据
get请求是基于TCP/IPpost请求是基于TCP/IP
get请求会有本地缓存,有历史来记录post没有本地缓存,没有历史记录
get请求只支持URL编码post请求支持多种编码

servlet

  1. 配置web.xml文件
  1. 提问?为什么servlet类中的方法被调用起来了
    将请求发送给servlet容器,自动加载xml文件,通过网址映射找到全限定类名,通过反射class.forName(全限定类名)创建对象
<servlet>
<!--        servlet的标识名-->
        <servlet-name>ServletDemo</servlet-name>
<!--        servlet的全限定类名-->
        <servlet-class>com.taiji.dao.ServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<!--        对应的servlet的标识名-->
        <servlet-name>ServletDemo</servlet-name>
<!--        全限定类名映射的网址-->
        <url-pattern>/</url-pattern>
 </servlet-mapping>
  1. 定义:servlet接收前端请求,响应请求的结果给浏览器实现类与网址直接交互,我们一般把实现了servlet接口的类也叫做servlet

  2. servlet的运行过程:

  1. 客户端发送HTTP请求tomcattomcat解析HTTPrequestservlet容器
  2. servlet容器将请求发送给servlet类,调用service方法处理前端请求request
  3. 将响应response回来的数据由servlet类传递给容器,容器传递给tomcat转换为HTTP,将HTTP再响应给前端页面
    在这里插入图片描述
    在这里插入图片描述
  1. servlet的作用:
  1. 接收请求
  2. 处理请求
  3. 响应结果
  1. servlet接口中的方法
	void init(ServletConfig var1);

    ServletConfig getServletConfig();

    void service(ServletRequest var1, ServletResponse var2);

    String getServletInfo();

    void destroy();
  1. servlet的生命周期(servlet类只被实例化一次,无论发送多少次请求)
  1. init(),service(),destory()是生命周期的方法
  2. init()只在第一次请求时被调用,被调用时,servlet容器会传入servletConfig进行对象初始化(servletConfig可以拿到全局上下文,初始化参数等)
  3. service()处理请求,在每次接收请求都会执行方法
  4. destory()销毁servlet对象

9.init()初始化方法中的 servletConfig与servletContext

config
		//拿到全局上下文对象
		ServletContext servletContext = servletConfig.getServletContext();
		//拿到servlet名
        String servletName = servletConfig.getServletName();
        //拿到初始化参数名
        Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
        String username = servletConfig.getInitParameter("username");
context  全局上下文对象,整个项目中共享一个
		 //获取本地路径名
        String path = servletContext.getRealPath("/web");
        //获取url中的项目路径/servletDemo
        String contextPath = servletContext.getContextPath();
        //获取web.xml文件中的全局参数,其他类中也可以使用
        String usr = servletContext.getInitParameter("usrename");
        //获取web.xml文件中的参数,只能在当前类中使用
        String username = servletConfig.getInitParameter("username");
        //给域对象存储数据
        servletContext.setAttribute("username","zs");
        Object username1 = servletContext.getAttribute("username");

  1. 域对象:在servlet容器中有4个域对象page,request,session,application,用来在jsp和servlet中传递数据
  1. page域,只能在同一个类中使用
  2. request域,可以创建多个,jsp和servlet存取数据时一定要保证是同一个request
  3. session域,jsp和servlet共享一个session,同一个项目下才可以使用
  4. application域,可以让在同一tomcat下的项目实现数据存取共享
  1. httpServlet抽象类对servlet类的功能进行了封装和完善,让开发者只关系业务代码的实现,不需要每次重写5个方法
public class ServletDemoTwo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //业务代码
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值