JavaWeb - jstl标签库(if、forEach),jsp开发模式,java并发编程实战下载

${a }

</c:forEach>

3.5 使用jstl的forEach标签获取域对象里面的集合中的值

(1)获取域对象里面list集合里面的值

= 代码

<%

//创建list集合

List list = new ArrayList();

list.add(“aaaa”);

list.add(“bbbb”);

list.add(“cccc”);

//把list集合放到域对象里面

request.setAttribute(“list”, list);

%>

${list[0] }


<c:forEach var=“l” items="${list }">

${l }

</c:forEach>

(2)获取域对象里面set集合里面的值

= 使用el表达式不能获取域对象里面的set集合中的值,因为set集合无序的,不能通过下标获取

= 代码

<%

//创建set集合,把set集合放到域对象里面

Set set = new HashSet();

set.add(“WWW”);

set.add(“QQQ”);

set.add(“TTT”);

request.setAttribute(“set”, set);

%>

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

<%-- ${set[0] } --%>

<c:forEach var=“set” items="${set }">

${set }

</c:forEach>

(3)获取域对象里面map集合里面的值

= 使用el表达式获取域对象里面map集合值,根据map的key得到value

= 代码

<%

//创建map,把map集合放到域对象里面

Map<String,String> map = new HashMap<String,String>();

map.put(“aaa”, “AAA”);

map.put(“bbb”, “BBB”);

map.put(“ccc”, “CCC”);

request.setAttribute(“map”, map);

%>

${map.aaa }


<c:forEach var=“m” items="${map }">

${m.key } , ${m.value }

</c:forEach>

3.6 使用jstl的forEach标签获取域对象里面多个对象的属性的值

(1)如何把多个对象放到域对象里面

= 可以先把多个对象放到集合里面(list),再把list集合放到域对象里面

= 代码

<%

//创建多个对象

User user1 = new User();

user1.setUsername(“东方不败”);

user1.setPassword(“999”);

User user2 = new User();

user2.setUsername(“岳不群”);

user2.setPassword(“444”);

User user3 = new User();

user3.setUsername(“林平之”);

user3.setPassword(“666”);

//把多个对象放到list集合里面

List list = new ArrayList();

list.add(user1);

list.add(user2);

list.add(user3);

//把list集合放到域对象里面

request.setAttribute(“list”, list);

%>

= 获取多个对象的属性值的代码

<c:forEach var=“user” items="${list }">

${user.username } :: ${user.password }

</c:forEach>

[](

)第二部分:jsp的开发模式


[](

)1、jsp的开发模式

1.1 有两种开发模式

第一种:模型一

(1)使用技术是jsp和javabean

(2)特点:需要在jsp中嵌入java代码,jsp中java代码和html代码混合使用,造成页面的结构很混乱,不利于程序的维护

第二种:模型二(一般使用)

(1)使用技术是 jsp、servlet和javabean

(2)特点:结构很清晰,每种技术只负责自己应该做的事情,利于程序维护

(3)jsp:负责显示数据;javabean:负责是处理数据;servlet:负责的是管理操作,哪个javabean里面的数据显示到哪个jsp页面中

[](

)2、使用模型二实现登录的功能

2.1 登录功能实现的步骤

(1)创建登录页面(使用jsp创建页面),写表单,在表单里面有输入用户名和密码的输入项,提交表单到servlet里面

(2)创建javabean,封装数据;创建类处理数据操作(判断用户名和密码是否正确)

(3)创建servlet,管理功能

= * 1、获取输入的用户名和密码

  • = 使用request.getParameter方法实现

  • 2、把用户名和密码封装到javabean里面

  • = 使用传统方式

  • = 使用beanutils框架,getParameterMap()方法

  • 3、调用service里面的方法实现登录

[](

)3、mvc的开发模式

3.1 各部分的组成

在mvc里面各部分使用不同的技术,这些技术,每种技术只是负责自己应该做的事情

使用mvc的开发模式,可以使程序结构清晰,利于程序的维护,后期扩展

(1)m:模型

(2)v:视图

(3)c:控制器

(4)特点:使用控制器,控制哪个模型里面的数据显示到哪个视图里面

3.2 在javaweb开发中,模型二就是一种mvc的模式

(1)m:使用javabean技术,处理数据

(2)v:使用jsp技术,显示数据

(3)c:使用servlet技术,控制管理功能

[](

)4、javaee的三层结构

4.1 web层

业务逻辑层

持久化层

4.2 dao模式

(1)专注于对数据库操作的模式,使用在持久化层里面

(2)使用方式:

首先创建接口,接口里面定义操作数据库的方法

之后,创建类,这个类实现接口里面的方法

在使用dao时候参数使用对象的形式进行传递的

[](

)第三部分: 案例


[](

)1、案例一:使用mvc+dao模式实现登录功能

1.1 实现步骤的分析(画图)

1.2 代码实现

= 核心代码

//调用dao接口里面的方法

UserDao dao = new UserDaoImpl();

boolean flag = dao.loginUser(user);

[](

)2、案例二:使用mvc+dao模式实现用户注册功能

2.0 最终的目的:向数据库表添加一条记录

2.1 实现步骤的分析(画图)

2.2 代码实现

2.3 注册功能的完善

(1)用户的id不需要输入,使用程序自动生成出来(随机唯一的id值)

第一种方式:创建表时候,把id的字段设置成主键,同时自动增长(类型是int)

第二种方式:通过程序生成一个随机的唯一的值(使用毫秒数;使用工具类UUID生成)

= 代码

//生成一个随机的唯一的id值,把生成的id值封装到javabean里面

String id = UUID.randomUUID().toString();

id = id.replace("-", “”);

user.setId(id);

(2)用户名称不能重复添加

= 实现的思路

== 根据输入的用户名到数据库里面进行查询,如果存在相同名称的用户名,不进行添加;否则,添加用户

= 代码

//获取输入的用户名

String username = request.getParameter(“username”);

//调用service里面的方法判断是否相同

UserService service = new UserService();

boolean userExist = service.findUserByName(username);

//如果存在,不进行添加

if(userExist) {

//回到注册页面,同时传递错误的信息

request.setAttribute(“msg”, “用户名已经存在”);

request.getRequestDispatcher("/reg.jsp").forward(request, response);

return;

}

[](

)3、案例三:使用mvc+dao模式实现显示所有用户功能

3.1 把用户表里面的所有用户的信息,显示到页面的表格里面

3.2 实现的步骤

(1)创建servlet,在servlet里面调用service里面的方法实现查询表中的所有数据

= 把所有的用户放到什么地方?

== 在表中有多条记录,先把每条记录放到user对象里面

== 有多个user对象,把多个user对象放到list集合里面

= 把list集合里面的多个user对象显示到页面中

== 把list集合传递到页面中,把list集合放到域对象里面

== 通过转发到用户列表显示的页面

(2)创建service,在service里面创建方法调用dao接口里面的方法

(3)创建接口,创建类实现接口里面的查询的方法

3.3 代码实现

(1)封装数据的过程

//创建list集合

List list = new ArrayList();

//遍历结果集

while(rs.next()) {

//得到每次遍历的记录

String id = rs.getString(“id”);

String username = rs.getString(“username”);

String password = rs.getString(“password”);

String addr = rs.getString(“addr”);

//把每条记录先放到user对象里面

User user = new User();

user.setId(id);

user.setUsername(username);

user.setPassword(password);

user.setAddr(addr);

//把每个user对象放到list里面

list.add(user);

}

上一篇:05-pytorch中Tensor的存储


下一篇:javaweb——EL表达式和JSTL