栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP入门

什么是JSP

html:静态网页,内容写完了之后,就固定下来了,不会发生改变。

Java server page(java服务器页面),动态网页!JSP=java+html JSP本质就是Servlet 

它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。

JSP产生的原因

需求: 我们要向页面动态输出一个表格. 发现特别的繁琐

servlet在展示页面的时候,相当的繁琐。sun公司为了解决这个问题,参照asp开发了一套动态网页技术jsp。

jsp就是简化书写!

    1. 客户端发起第一次请求xxx.jsp,服务器就会找到对应的jsp文件
    2. 服务器会将jsp文件翻译成xxx_jsp.java
    3. 将xxx_jsp.java编译成xxx_jsp.class
    4. 服务器执行xxx_jsp.class文件 输出结果给客户端浏览器

  1. JSP:是一个动态网页,在jsp中既可以写java代码,又可以写html代码,作用:简化开发

  2. JSP本质就是一个Servlet

  3. JSP执行流程:请求-->index.jsp-翻译->index_jsp.java-编译->index_jsp.class-->执行-->响应给浏览器

  4. 在目前实际开发中,jsp基本不再使用了,1.执行效率低下 2.不利于分工协作

JSP脚本

类型翻译成Servlet对应的部分注意
<%...%>:Java程序片段翻译成Service()方法里面的内容, 局部的
<%=...%>:输出表达式翻译成Service()方法里面的内容,相当于调用out.print()输出表达式不能以;结尾
<%!...%>:声明成员变量翻译成Servlet类里面的内容
JSP&三层架构

获取数组

语法: ${key[下标]} key就是域对象里面存的key

3.3获取list

语法:${list属性名[index]}或者${list属性名.get(index)};list属性名就是存入域对象里面的key

3.4获取Map

语法:${map属性名.键} 或 ${map属性名.get("键")} 或${map属性名[键],map属性名就是存入域对象里面的key }

注意:当map的键比较特殊(eg:"1"、"a.ba.c")时,此时使用点的方式会报错,可以选择使用[]的方式。

JSTL标签库的使用

  1. 导入jar包

  2. 在要使用jstl标签的jsp页面上引入jstl标签库

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

if标签使用


 

choose标签的使用



    
   
    ...
   

forEach标签使用




    ${迭代变量}



    ${迭代变量}

JSP的开发模式一

jsp+javabean:实现

1.所有的代码都在jsp中 会存在大量代码冗余 不利于代码维护修改

2.jsp已经属于上个时代的技术了 过时了 jsp执行效率非常低 jsp-->翻译成java代码-->编译class文件-->执行

JSP的开发模式二

JSP【html】 + Servlet + JavaBean 称为MVC的开发模式.

MVC:开发模式

M:model 模型 (javaBean:处理业务封装数据)

V:View 视图  (JSP|html:展示数据)

C:controller 控制器 (Servlet:接收请求进行分发,做为控制器)

模式三: 三层架构

软件中分层:按照不同功能分为不同层,通常分为三层:表现层(web层),业务层,持久(数据库)层

表现层(web层)com.itheima.web 编写Servlet
业务层(service层)com.itheima.service 编写Service类
持久层(数据库访问层)com.itheima.dao 编写Dao类
JavaBeancom.itheima.bean 封装数据
工具类com.itheima.utils 编写工具类

  • 分层的意义:

    1. 解耦:降低层与层之间的耦合性。

    2. 可维护性:提高软件的可维护性,对现有的功能进行修改和更新时不会影响原有的功能。

    3. 可扩展性:提升软件的可扩展性,添加新的功能的时候不会影响到现有的功能。

    4. 可重用性:不同层之间进行功能调用时,相同的功能可以重复使用。

缺点:代码量增多,结构复杂,当新增功能时,需要web、service、dao分别写一次。

但是利大于弊!所以今后的开发全部使用三层架构进行代码编写。

好的代码:低耦合+高内聚

.DBUtils实现事务管理

API说明
QueryRunner()创建QueryRunner对象. 手动提交事务时使用
query(connection,String sql, Object[] params, ResultSetHandler rsh)查询(需要传入Connection)
update(connection,String sql, Object... params)更新
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号