1、修改pom.xml文件,添加以下内容:
代码:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2、更新maven项目
3、编写servlet项目(继承HTTPServlet)
4、添加servlet启动类注解
5、以上步骤完成之后,就可以通过URL方式传递参数到java类中了。
6、Java参数传递到JSP中,在application.properties中添加JSP存放路径。
代码:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
7、创建路径,编写userlist.jsp
8、创建contorl类
代码:
package com.yxk.demo_01.demoyxk_01;
//import com.practice.pojo.user.*;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.practice.pojo.user.User;
/** * Hello world! * */
@Controller
public class UserContorller
{
@RequestMapping("/showuser")
public String showUser(Model mode)
{
List<User> list = new ArrayList<User>();
list.add(new User(1,"张三",20,"man"));
list.add(new User(2,"李四",21,"man"));
list.add(new User(3,"王五",22,"man"));
list.add(new User(4,"张扬",30,"woman"));
list.add(new User(5,"傻屌",33,"Trueman"));
//注入Model对象
mode.addAttribute("list",list);
//跳转视图
return "userlist";
} }
9、创建User实体类 右键source(get and set),和构造函数;
代码:
package com.practice.pojo.user;
public class User {
private Integer userId;
private String userName;
private Integer userAge;
private String userSex;
public User(Integer userId, String userName, Integer userAge,String userSex) {
super();
this.userId = userId;
this.userName = userName;
this.userAge = userAge;
this.userSex =userSex;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getUserAge() {
return userAge;
}
public void setUserAge(Integer userAge) {
this.userAge = userAge;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
}
10、创建jsp页面,名称必须与contor类里面return的字符串一致;
代码:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body style="background-image: url('images/earth.jpg');">
<table border="1" align="center" width="60%">
<tr>
<th>ID</th>
<th>name</th>
<th>age</th>
<th>sex</th>
</tr>
<c:forEach items="${list }" var="user">
<tr>
<td> ${user.userId}</td>
<td> ${user.userName}</td>
<td> ${user.userAge}</td>
<td> ${user.userSex}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
11、完成以上步骤后就可以给JSP传值了;
知识点一:Spring框架
Spring的初衷:
1、JAVA EE开发应该更加简单。
2、使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。
3、为JavaBean提供了一个更好的应用配置框架。
4、更多地强调面向对象的设计,而不是现行的技术如JAVA EE。
5、尽量减少不必要的异常捕捉。
6、使应用程序更加容易测试。
Spring的目标:
1、可以令人方便愉快的使用Spring。
2、应用程序代码并不依赖于Spring APIs。
3、Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。
Spring的基本组成:
1、最完善的轻量级核心框架。
2、通用的事务管理抽象层。
3、JDBC抽象层。
4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
5、AOP功能。
6、灵活的MVC Web应用框架。
知识点二:IOC和DI
IOC(inversion of control) 控制反转
DI (Dependency Injection) 依赖注入
要理解这两个概念,首先要搞清楚以下几个问题:
- 参与者都有谁?
- 依赖:谁依赖于谁?为什么需要依赖?
- 注入:谁注入于谁?到底注入什么?
- 控制反转:谁控制谁?控制什么?为何叫反转(有反转就应该有正转了)?
- 依赖注入和控制反转是同一概念吗?
(1)参与者都有谁:
一般有三方参与者,一个是某个对象;一个是IoC/DI的容器;另一个是某个对象的外部资源。
又要名词解释一下,某个对象指的就是任意的、普通的Java对象; IoC/DI的容器简单点说就是指用来实现IoC/DI功能的一个框架程序;对象的外部资源指的就是对象需要的,但是是从对象外部获取的,都统称资源,比如:对象需要的其它对象、或者是对象需要的文件资源等等。
(2)谁依赖于谁:
当然是某个对象依赖于IoC/DI的容器
(3)为什么需要依赖:
对象需要IoC/DI的容器来提供对象需要的外部资源
(4)谁注入于谁:
很明显是IoC/DI的容器 注入 某个对象
(5)到底注入什么:
就是注入某个对象所需要的外部资源
(6)谁控制谁:
当然是IoC/DI的容器来控制对象了
(7)控制什么:
主要是控制对象实例的创建
(8)为何叫反转:
反转是相对于正向而言的,那么什么算是正向的呢?考虑一下常规情况下的应用程序,如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A类中