JavaWeb阶段总结(华清远见)

JavaWeb阶段总结

JavaWeb的学习意味着我们对于JavaEE的学习进入了一个新的阶段,从单独的java基础学习和前端学习等内容进入了前后端结合的小项目实现。这一部分是比较复杂且繁琐的,知识内容大多已经在前面的内容中学习过了,更多的是学习如何去创建与实现一个项目,并掌握项目开发的思维和方法,细细体会和感受过程。

Servlet

servlet是我们在JavaWeb的学习中必不可少的一个内容。

其是sun公司制定的一种用于扩展web服务器的功能的组件规范。

开发步骤

  • 新建符合java web项目的工程

  • servlet 类 继承 HttpServlet

    • 重写service方法

    • service(HttpServletRequest request , HttpServletResponse)

    • request : 请求

    • response :响应

  • java web工程中的web.xml文件

    • web.xml 的文件名不能修改(tomcat找web.xml)

    • 将java的类 和 浏览器访问的地址做一个映射

    • 浏览器没法办法直接访问java类中的方法 , 所以需要java类映射到一个浏览器能访问的url地址。

  • 打包(idea帮助完成) ;把web项目运行需要的文件内容按指定文件结构保存。

  • 部署(在idea中可以完成);把打包好的web程序放到tomcat容器中,然后运行tomcat容器的时候,才能访问我们的web程序。

  • 启动容器, 然后可以通过浏览器访问访问web程序。

servlet类的创建

servlet类的创建主要是继承HttpServlet类,对其进行重写。

如下代码

public class 类名 extends HttpServlet { 
    @Override //重写
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置中文编码
        resp.setContentType("text/html;Charset=UTF-8");
        req.setCharacterEncoding("utf-8")
    } 
}

一些servlet类中的方法

  • getParameter():request对象的方法,获取请求参数,返回值为String类型

  • getWriter():response对象的方法,得到输出流,将其作为相应结果输出。

  • getContextPath():request对象的方法,得到项目名

  • getRequestURL():request对象的方法,得到响应地址

  • getServletPath():request对象的方法,得到servlet的访问地址

servlet的配置

创建好servlet类的文件之后,在web.xml中对servlet进行配置,保证其能够在浏览器中使用,主要方法如下:

<servlet>
    <servlet-name>servlet名</servlet-name>
    <servlet-class>包名.类名</servlet-class>
</servlet>
<servlet-mapping> 
    <servlet-name>servlet名</servlet-name> 
    <url-pattern>浏览器中要输入的地址</url-pattern> 
</servlet-mapping>

服务器优先找web.xml中的servlet的路径,如果找不到就找静态资源,如果还找不到,就404

服务器优先精确匹配,如果没有符合要求的,就模糊匹配

地址命名要尽量避免特殊的后缀名,如.jsp、.css、.js等

下面是servlet的url映射方式:

  • /:模糊匹配,除了jsp之外,都会被匹配到

  • /*:模糊匹配,所有地址都会被匹配到

  • *.xx:按后缀名进行匹配

  • /url:精确地址

  • /url.do:精确地址

servlet的生命周期

  • 容器启动或者第一次访问servlet的时候,会执行init方法,一个生命周期内只执行一次

  • 容器结束运行的时候,执行destroy方法, 一个生命周期内容只执行一次

  • servlet被访问的时候, 反复执行service(doXXX)

Maven

Maven是一款服务于Java平台的自动化构建工具,其作为Java项目管理的工具不仅可以用作包的管理,还有许多的插件,支持了整个项目的开发、打包、测试及部署等一系列的行为,简化了项目开发复杂的过程与时间成本。

JSP

jsp是一种运行在服务器端的页面, 它里面包含html,嵌入一些java语言,在服务器(tomcat)上经过解析转换,输出为html页面jsp不需要配置,直接用它的路径和文件名进行访问。jsp是sun公司制定的一种用于服务器动态页面的技术规范,也是一种组件,依赖于tomcat进行运行。

jsp页面写java相关内容

添加需要包,避免jsp内置对象使用的时候,不提示对应函数

java内容的语法规则为“ <%java内容%> ”

jsp运行

jsp的本质是servlet

  • 当第一个访问一个jsp页面的时候,会将jsp文件,对应生成一个servlet类

  • html,js ,css这种内容就用输出语句拼接

  • 其他和java相关的内容,就按java的方式转换

jsp中的内置对象

  • request : 请求

  • session : 会话

  • out : 输出语句

  • response : 响应结果

  • page : 类似于this

  • pageContext : 有效范围只在当前的jsp页面上

  • config : servlet的数据

  • exception: 异常

转发 & 重定向

转发

转发的就是一个请求处理了一部分功能,然后开始另一个请求处理剩下的功能,其本质就是一个请求。

转发是共享request,response对象 ,因此可以把需要转发的数据保存在request对象中。

浏览器的地址栏地址保存不变。(显示第一个请求的地址)

方法为

requestDispatcher.forward(req,resp);

重定向

重定向是一个请求的功能完成了,然后开启另一个请求,做另一个功能。 本质是两个请求。(第一个请求是我们主动发的, 第二个请求是浏览器收到302代码和重定向的url地址, 然后浏览器主动发送的请求)

重定向因为是两个不同的请求,所以是两个不同的request对象,因此不能共享数据。

浏览器地址栏的地址是显示重定向的地址。(显示第二个请求的地址)

方法为

resp.sendRedirect("第二个请求的地址.jsp");

el表达式

jsp页面上,用于方便的获取到转发到jsp页面上的数据的一种表达式语言

语法规则为:${变量}、${对象,属性}

标签库

jstl标签,使用之前需要导入jstl的包

在需要的jsp中引入标签库,方法为

<%@ taglib prefix="标签名" uri="标签库位置" %>

用于解决命名冲突的问题

cookie

客户端状态管理技术

用于保存客户端的状态的计数。当我们有多次请求的时候,这个多次请求被看做一个整体,这个整体中有些数据需要保存的时候,可以使用cookie,把数据保存在浏览器中

cookie的使用

  • 服务器端代码中,创建cookie对象,在response中添加cookie

  • 客户端访问服务器的时候,会将把当前访问路径有关的cookie发送到服务器端

  • 服务器端可以在request中获取到cookie数据,然后对这些数据进行使用

  • 浏览器可以设置禁用cookie,或者用户可以删除cookie数据,用户可以查看到cookie数据,所以重要数据不能直接保存在cookie中

  • cookie中存储的是string , 并且存储的数据大小也有限

  • cookie 可以设置有效期,过期之后,cookie会被浏览器清除掉

session

服务器端状态管理技术

在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中

session的使用

  • 保存数据

    getSession(): 规则就是如果有就根据session-id获取session对象,如果没有就直接创建一个session对象

  • 获取数据

    getAttribute():session对象的方法,用于获取session中的数据,返回值是object

  • 删除数据

    removeAttribute():session对象的方法,用于删除session中的数据

  • session默认在会话期间有效

  • session会话超时

    • 如果没有设置session的有效期, 默认的有效期是30分钟

    • 可以设置session的有效期,方法为:

      setMaxInactiveInterval(秒):session对象的方法

  • 设置session无效

    一般在退出系统的时候,需要清空session中保存的数据,使用方法让session失效,方法为:

    invalidate():session对象的方法

过滤器

过滤器类型: 过滤器是sun提供一个组件, 需要依赖于服务器(tomcat)容器运行

过滤器的执行过程:访问请求的时候,先根据过滤器的配置,符号过滤器路径的请求,则先进入到过滤器中执行,执行结束之后,再根据情况,看是否需要进入到servlet中

过滤器的使用

通过继承HttpFileter类,对其进行重写

过滤器的配置

配置情况如下

<filter>
    <filter-name>命名</filter-name> 
    <filter-class>对应包.对应类</filter-class> </filter> 
<filter-mapping> 
    <filter-name>命名</filter-name>  
    <url-pattern>地址</url-pattern> 
</filter-mapping>

监听器

监听器在后台工作,可以设置需要监听的内容

监听器的使用

通过ServletRequsetListener接口,对其进行重写

监听器的配置

配置情况如下

<listener>
    <listener-class>对应包.对应类</listener-class> 
</listener>

Java Web作用域

  • pageContext :只在当前页面有效

  • request : 请求期间有效

  • session: 会话期间有效

  • application : 程序运行期间有效

异步请求

ajax,网页的局部更新

使用jquery的ajax函数,实现异步请求的发送,获取到数据之后,使用jquery将数据渲染到网页上

ajax的使用

  • 后端

    在方法前加上如下注释,让前端可以获取url请求

    @WebServlet("/url名")
  • 前端

    在js中通过如下代码实现请求

    $("button").click(function () {
        let 请求参数 = $("对应的键").serialize();
        console.log(args)
        $.ajax({ 
            url: "后端中的url名", 
            data: 请求参数,  
            type: "请求方式", 
            dataType: "期待相应的结果",
            success:function (res) {
                if(res.success){ 
                    alert("成功") 
                }else{
                    alert("失败了") 
                } 
            } 
        }) 
    })
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值