JavaWeb(一)

1.软件系统体系结构

B/S架构:即浏览器/服务器体系结果,优点是只需要编写服务器程序,缺点是安全性较差,例如有很多钓鱼网站可以窃取用户的信息

C/S架构:即客户端/服务器,优点是安全性比较好,缺点是同时更新客户端和服务端,比较麻烦。例如更新一个版本,客户端需要下载新的文件。

2.Http协议

HTTP是一种不保存用户状态,即无状态(stateless)的协议。
通过三次握手来建立链接,四次握手来释放连接
在这里插入图片描述

3.Tomcat服务器

Tomcat服务器由Apache提供,开源免费
在这里插入图片描述
注意:

1.tomcat7中get请求的默认字符编码不是“UTF-8”,tomcat8中get请求默认是“UTF-8”
2.只有 bin 和 lib 目录是被多个Tomcat实例公用,其它目录conf、logs、temp、webapps和work每个Tomcat实例必须拥有其自己独立的备份。

在这里插入图片描述

3.1注意事项

在这里插入图片描述
(个人总结:如果将jia包放到src目录下,只能被JVM来加载,tomcat访问不到,tomcat只能访问web-inf下的lib目录。因为最终是将src下的项目打包成war包放到web下面由tomcat来执行)

4.Servlet

Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:接收请求数据;处理请求;完成响应。

实现的三种方式:

  • 实现javax.servlet.Servlet接口;

  • 继承javax.servlet.GenericServlet类;

  • 继承javax.servlet.http.HttpServlet类;

1.通常我们会使用第三种方法来创建,我们只需要重写doget或者dopost方法即可。注意不能重写service方法,否则父类中service方法做的处理全都会失效。
2.Servlet中的方法大多数不由我们来调用,而是由Tomcat来调用。并且Servlet的对象也不由我们来创建,由Tomcat来创建!
Servlet在被访问时创建,只创建一个,每个用户访问的AServlet都是同一个AServlet。

5.Servlet的生命周期

通过实现javax.servlet.Servlet接口,我们可以清晰的看到他的生命周期。
代码举例:

@WebServlet("/ceshi")
public class ceshi implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("Servlet出生,只执行一次......");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("servlet工作,请求多少此,就执行多少次.......");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("servlet关闭,服务器关闭前再执行此方法,一般用来释放资源.......");
    }
}

在这里插入图片描述
在这里插入图片描述

6.Servlet的核心API:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ServletConfig由tomcat来创建,子类可以直接拿来使用。

在这里插入图片描述

在这里插入图片描述

ServletRequest和ServletResponse是Servlet#service() 方法的两个参数,一个是请求对象,一个是响应对象。

重定向资源路径问题(重定向到html页面)
如果设置访问的项目名:则必须在前面加上项目名,例如:/项目名/资源路径
建议对重定向的URL的写法:

req.getContextPath()+“/资源路径”

7.注解&配置文件

在这里插入图片描述
web.xml

<?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类绑定一个url(客户端访问入口)-->
    <servlet>
        <!-- 名称 随意取, 一般取名类名-->
        <servlet-name>index</servlet-name>
        <!--对应的Servlet类, 全限定名(包.类名) -->
        <servlet-class>com.feisi.demo.IndexServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <!--名称, 与对应servlet的servlet-name一样 -->
        <servlet-name>index</servlet-name>
        <!--绑定url: /路径  一般取名: /类名 -->
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
    <web-app>

我们可以直接通过注解将url路径写在servlet类上面,这样就可以将url路径和servlet类想对应,就可以不用写xml文件了。
用注解的方式:

@WebServlet("/index")
public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().print("DServlet....");
        System.out.println("");
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值