华清远见-重庆中心-java web后端技术总结

Web项目开发模式

Model1

JSP+JavaBean模式

JSP负责渲染数据和处理页面。

JavaBean是一个满足以下条件的类

  • 被public修饰
  • 其中的属性进行封装
    • 用private修饰属性
    • 提供get/set方法
  • 有无参数的构造方法

这种模式,不适合复杂项目的开发。

jsp既要显示内容,又要处理数据,后期维护扩展不方便。

请添加图片描述

Model2

MVC模式。

M:Model模型

V:View视图

C:Controller控制器

模型-视图-控制器模式。
这种模式适合复杂项目的开发。
每个模块之间互不干涉、各司其职,耦合性低,更方便后期维护和扩展

请添加图片描述

请添加图片描述

请添加图片描述

WEB阶段核心内容

B/S模式的访问流程

用户通过浏览器发送请求,访问服务器上的某个部署的项目,经过该项目的MVC,得到响应。

框架部分会使用SpringMVC实现MVC部分的流程。

页面提交数据的方式

  • 通过表单提交 action method name submit

  • 通过超链接提交 ,属于get方式 href =“地址?参数=值&参数=值”

  • 使用ajax提交

    先导入jquery

    $.ajax({
        url:'',
        data:{
            "参数名":值,
            "参数名":值
        },
        type:"get/post",
        success:function(res){
            //res为控制层的返回值
        },
        error:function(){}
    });
    

路径

${pageContext.request.contextPath}获取当前项目路径(在jsp中的标签里可使用)

请添加图片描述

./xxx
xxx在当前网页的最后一层

请添加图片描述

servlet依赖

如果要使用servlet、filter、listener、request、response都需要该依赖

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
</dependency>

web.xml中的相关配置

  • servlet

    <servlet>
    	<servlet-name>自定义servlet名</servlet-name>
        <servlet-class>servlet全限定名</servlet-class>
        <!--servlet初始化参数-->
        <init-param>
                <param-name>参数名</param-name>
                <param-value>参数值</param-value>
            </init-param>
    </servlet>
    <servlet-mapping>
    	<servlet-name>自定义</servlet-name>
        <url-patten>/映射名</url-patten>
    </servlet-mapping>
    
  • filter

    <filterr>
    	<filter-name>自定义filter名</filter-name>
        <filter-class>filter全限定名</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>自定义</filter-name>
        <!--过滤器通常用于解决中文代码,一般过滤所有页面-->
        <url-patten>/*</url-patten>
    </filter-mapping>
    
  • listener

    <!--配置监听器-->
    <listener>
        <listener-class>com.hqyj.bookShop.listener.MyListener</listener-class>
    </listener>
    
  • session

    <!--设置全局session配置-->
    <session-config>
        <!--session有效时长,单位为分钟-->
        <session-timeout>15</session-timeout>
    </session-config>
    
  • 全局参数

    <context-param>
            <param-name>参数名</param-name>
            <param-value>参数值</param-value>
    </context-param>
    

数据访问层(Dao)

现在使用JDBC实现查询,框架部分会使用MyBatis或MyBatisPlus或JPA,简化该层的写法.

由控制层保存数据到作用域中,跳转到jsp中展示数据。

跳转

请求转发forward

保存在request中的数据会之一存在

request.getRequestDispatcher(“目的路径”).forwaed(request,response);

重定向redirect

保存在request中的数据会丢失(不是用一个请求)

response.sendRedirect(“目的路径”)

JSP

作用域对象

request pageContext session application

内置对象

request response page pageContext session application out config exception

EL

表达式语言。替换jsp中的输出<%=%>部分。

  • 从作用域中获取对象,通过.或[]获取属性,该属性必须存在且有get方法

    对象名 . 属性名 或 {对象名.属性名}或 对象名.属性名{指定作用域.对象名[“属性名”]}

  • 从请求中获取参数,表单的name或?后的数据

    #{param.参数名}

  • 逻辑判断、计算

    • 非空判断 ${empty 对象}
    • 计算${xx+yy}
  • 获取当前上下文路径

    ${pageContext.request.contextPath}
    

JSTL

<!--jstl标签库-->
<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
</dependency>

先导入依赖,在jsp页面中引入标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 判断

    <c:if test="条件">
        html内容
    </c:if>
    
  • 遍历

    <c:forEach items="要遍历的集合" var="遍历出的对象">
    	html内容
    </c:forEach>
    

Session

通常用Session保存登录时的用户信息,实现在各个页面中共享信息或防止未登录的情况下访问。

使用session时,会创建一个JSESSIONID,保存在cookie中,在浏览器开启状态下,该JSESSIONID默认有30分钟的有效期,如果在30分钟内没有对session进行操作或关闭浏览器,该cookie就会销毁。

作者的话:

理论上,学好JavaWeb后就可以进行一些简单开发了,因为他串联了前面所学的前端基础和后端基础,并且前后端可以进行数据的传递。但想要开发效率更高,则还需要掌握一些框架,好的框架可以简化开发步骤:例如好用的前端框架可以省去你写页面样式的时间,好看用起来又方便,例如BootStrap、LayUI等;又比如后端用SpringMVC+MyBatis等框架可以省去写一些重复代码、提供常用SQL查询方法等等。学无止境,前路不孤。努力!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值