JavaWeb基础巩固

JavaWeb基础巩固

Tomcat服务器安装

Tomcat官网下载安装/解压
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

Maven下载配置

Maven官网
使用Maven可以方便导入Jar包,Maven核心思想:约定大于配置

Servlet简介

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
Servlet 执行以下主要任务:

  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如HTML),设置 cookies 和缓存参数,以及其他类似的任务。

在pom文件中通过Maven导入Servlet、Jsp的jar包

Maven仓库链接,在仓库中找对应jar包

 <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2.1-b03</version>
        </dependency>
 </dependencies>

Module使用

在IDEA开发Servlet中可以使用Module创建子Servlet,子Servlet包含父Servlet的所有jar包,在创建子Servlet后父Servlet的pom.xel会出现(自动生成)

 <modules>
     <module></module>
</modules>

子Servlet的pom.xml会出现(自动生成)

<parent>
    <artifactId><artifactId>
    <groupId><groupId>
    <version><version>
<parent>

编写Servlet

编写一个类继承HttpServlet(抽象类)

扩展:HttpServlet继承自GenericServlet(抽象类)GenericServlet继承Servlet(接口)

web.xml中注册编写的Servlet

 <!-- servlet与servlet-mapping成对出现  -->
 <servlet>
   <servlet-name>asssd</servlet-name>  <!-- 对Servlet命名 -->
   <servlet-class>com.yhb.Servlet</servlet-class>  <!-- 编写的Servlet的Java代码路径 -->
 </servlet>
 <servlet-mapping>
   <servlet-name>asssd</servlet-name>  <!-- Servlet的名字 -->
   <url-pattern>/zxc</url-pattern>   <!-- 浏览器访问的url路径 -->
 </servlet-mapping>

请求转发与重定向

  1. 请求转发
    a->(请求资源)->b->(请求资源)->c
    c->(响应)->b->(响应)-a
  2. 重定向
    a->(请求资源)->b
    b->(响应(找c))->a
    a->(请求资源)->c
    c->(响应)->a
    在这里插入图片描述

读取资源文件

Maven核心:约定大于配置
在Maven项目中 resources 文件保存配置文件,java文件编写代码,因此如果在Java文件下编写的配置文件将无法编译,需要手动配置。(项目编译后都存放于WEB-INF->classes文件下)。

<!--在build中配置resoureces,来防止我们资源导出失效的问题-->
<build>
    <resources>
        <resource>
            <directory>src/main/resources/</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

cookie和Session

一个网站如何证明你来过。。。

  1. 服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了;cookie
  2. 服务器登记你来过,下次你来的时候我来匹配你;session
  • cookie:客户端技术(响应,请求)
  • session:服务器技术,利用这个技术保存用户的会话信息。

jsp标签

jsp实质是Servlet: 参考:https://www.runoob.com/jsp/jsp-syntax.html
jsp声明:<%!开头,以%>结束的标签,如

<%! int count = 0; %>

jsp脚本:<%开头,以%>结束的标签,如

<% count++; %>

jsp表达式:<%=开头,以%>结束的标签,如

<%= count%>

jsp声明会编译到jsp生成的Java类中,其他的会生成到_jspService方法中。

jsp指令:<%@ 指令名 val="" …%>,如

<%@ directive attribute="value" %>

jsp九大内置对象及作用域

  • pageContext 存东西 在一个页面中有效
  • request 请求 存东西 再一次请求中有效(包括请求转发)
  • response 响应
  • Session 存东西 再一次会话中有效
  • application【ServletContext】 存东西 在服务器中有效直至关闭服务器
  • config【ServletConfig】
  • out
  • page
  • exception
final javax.servlet.http.HttpServletRequest request
final javax.servlet.http.HttpServletResponse response
final javax.servlet.jsp.PageContext pageContext;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.http.HttpSession session = null;

JSTL标签、EL表达式、JavaBean

  1. JSTL标签:参考:https://www.runoob.com/jsp/jsp-jstl.html
    备注:在Tomcat当中也需要导入对应的jar包(jstl.jar,standard.jar)否则可能出现解析错误。
  2. EL表达式:参考:https://www.runoob.com/jsp/jsp-expression-language.html
  3. JavaBean:参考:https://www.runoob.com/jsp/jsp-javabean.html

MVC三层架构

在这里插入图片描述

过滤器(Filter)

过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。
在这里插入图片描述

编写Java类继承javax.servlet.Filter

import javax.servlet.*;
import java.io.IOException;

public class Filter implements javax.servlet.Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }
    /*
        在过滤特点请求的时候会执行
        chain:必须让过滤器继续通行
     */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");

        chain.doFilter(request,response);//让过滤器继续执行,否则到这终止;
    }
    @Override
    public void destroy() {

    }

}

web.xml注册过滤器

<filter>
    <filter-name>aaa</filter-name>
    <filter-class>com.yhb.Filter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>aaa</filter-name>
    <url-pattern>zxc/*</url-pattern>
  </filter-mapping>

监听器

在Servlet规范中定义了多种类型的监听器(一共8个监听器),它们用于监听的事件源分别为ServletContext,HttpSession和ServletRequest这三个域对象。Servlet规范针对这三个对象上的操作,又把多种类型的监听器划分为三种类型:

  1. 域对象的生命周期监听:监听域对象自身的创建和销毁。这个监听器需要实现相应的监听器接口:ServletContextListener、HttpSessionListener、ServletRequestListener。
  2. 域对象的属性监听:监听域对象中属性的增加和删除。这个监听器需要实现的监听器接口为:ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener
  3. 感知监听(都与HttpSession域对象有关):监听绑定到HttpSession域中的某个JavaBean对象的状态的监听器。这个监听器需要实现的监听器接口:HttpSessionBindingListener、HttpSessionActiveationListener.
    在这里插入图片描述
    编写Java类继承自需要监听的接口。
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class lis implements HttpSessionListener {
    //创建监听
    @Override
    public void sessionCreated(HttpSessionEvent se) {

    }

    //销毁监听
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {

    }
}

在web.xml当中配置

  <listener>
    <listener-class>com.lis.lis</listener-class>
  </listener>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值