Spring & servlet

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类中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值