Java in Tarena_Spring Note04
2016-03-28 18:57
459 查看
Spring–Day04
上午:
1、通过注释@RequestMapping和@Controller读取请求参数的三种方法
1.1、通过request对象
1.2、通过同名参数
1.3、通过javabean
2、通过注释@RequestMapping和@Controller向页面传值的四种方法
2.1、通过request对象
2.2、通过session对象
2.3、通过ModelAndView对象
2.4、通过ModelMap对象
3、练习:见附录
下午:
1、注释@RequestMapping和@Controller–重定向的使用
2、通过Spring_MVC的思路完成Netctoss项目(上)
———————————————–上午部分—————————————————-
2、通过同名的参数
3、通过javabean
2、通过session对象
3、通过ModelAndView对象
4、通过ModelMap对象
———————————————–下午部分—————————————————-
重定向
*处理方法返回值是String
*处理方法返回值是ModelAndView
在LoginController里添加方法:
—-Spring MVC应用 ___Netctoss项目—————15:20
准备工作:
1、创建web工程(spring-netctoss)
2、导包:
spring mvc 相关的jar文件
jdbc jar文件
dataSource相关的jar文件
3、spring配置文件(spring-mvc.xml)
4、配置DispatcherServlet(web.xml)
5、Admin实体类
6.编写Admin.Dao
7.配置db.properties文件(提供数据库连接信息)
8.编写配置文件 spring-mvc.xml
17:00
计算一个人的bmi指数。
算法:
bmi指数=体重(KG)/身高(m)/身高(m)
如果bmi指数>24,过重,
否则 正常。
bmiController.java
bim.jsp
上午:
1、通过注释@RequestMapping和@Controller读取请求参数的三种方法
1.1、通过request对象
1.2、通过同名参数
1.3、通过javabean
2、通过注释@RequestMapping和@Controller向页面传值的四种方法
2.1、通过request对象
2.2、通过session对象
2.3、通过ModelAndView对象
2.4、通过ModelMap对象
3、练习:见附录
下午:
1、注释@RequestMapping和@Controller–重定向的使用
2、通过Spring_MVC的思路完成Netctoss项目(上)
———————————————–上午部分—————————————————-
读取请求参数
1、通过request对象@RequestMapping("/login.do") /* * 使用request读取请求参数值 */ public String checkLogin( HttpServletRequest request){ System.out.println("LoginController的checkLogin方法..."); String username= request.getParameter("username"); String pwd= request.getParameter("pwd"); System.out.println("username:"+username+"pwd:"+pwd); return "success"; }
2、通过同名的参数
/* * 读取请求参数的第二种方法: * 将处理方法的参数名设置为请求参数名。 */ @RequestMapping("/login2.do") public String checkLogin2(String username,@RequestParam("pwd")String password){ System.out.println("checkLogin2方法.."); System.out.println("username:"+username+"pwd:"+password); return "success"; }
3、通过javabean
@RequestMapping("/login3.do") /* * 读取请求参数的第三种方式: * 使用javabean。 */ public String checkLogin3(User user){ System.out.println("checkLogin3.."); String username = user.getUsername(); String pwd = user.getPwd(); System.out.println("username:"+username+"pwd:"+pwd); return "success"; }
向页面传值
1、通过request对象/* * 向页面传值的第一种方式: * 使用request对象。 */ @RequestMapping("/login4.do") public String checkLogin4( HttpServletRequest request, User user){ System.out.println("checkLogin4方法..."); request.setAttribute("status", "success"); request.setAttribute("username", user.getUsername()); return "success"; }
2、通过session对象
@RequestMapping("/login5.do") public String checkLogin5( HttpSession session,User user){ /* * 向页面传值的第二种方式: * 使用session。 */ System.out.println("checkLogin5方法.."); session.setAttribute("status", "success"); session.setAttribute("username",user.getUsername()); return "success"; }
3、通过ModelAndView对象
/* * 向页面传值的第三种方式: * 使用ModelAndView。 */ @RequestMapping("/login6.do") public ModelAndView checkLogin6( User user){ System.out.println("checkLogin6的方法"); Map<String,Object> data = new HashMap<String,Object>(); //相当于request.setAttribute... data.put("status","success"); data.put("username",user.getUsername()); return new ModelAndView("success",data); }
4、通过ModelMap对象
/* * 向页面传值的第四种方式: * 使用ModelMap对象。 */ @RequestMapping("/login7.do") public String checkLogin7(User user, ModelMap data){ System.out.println("checking7的方法.."); //相当于request.setAttribute... data.addAttribute("status","success"); data.addAttribute("username",user.getUsername()); return "success"; }
———————————————–下午部分—————————————————-
重定向
*处理方法返回值是String
return "redirect:toLogin.do";
*处理方法返回值是ModelAndView
RedirectView rc = new RedirectView("toLogin.do"); return new ModelAndView(rc);
在LoginController里添加方法:
@RequestMapping("/login8.do") public String checkLogin8(User user,ModelMap data){ System.out.println("checkLogin8方法..."); }
—-Spring MVC应用 ___Netctoss项目—————15:20
准备工作:
1、创建web工程(spring-netctoss)
2、导包:
spring mvc 相关的jar文件
jdbc jar文件
dataSource相关的jar文件
3、spring配置文件(spring-mvc.xml)
4、配置DispatcherServlet(web.xml)
5、Admin实体类
package com.tarena.oss.entity; import java.sql.Timestamp; /* * 实体类 * 与要访问的表的结构保持一致 */ public class Admin { private Integer adminId; private String adminCode; private String password; private String name; private String telephone; private String email; private Timestamp enrolldate; public Integer getAdminId() { return adminId; } public void setAdminId(Integer adminId) { this.adminId = adminId; } public String getAdminCode() { return adminCode; } public void setAdminCode(String adminCode) { this.adminCode = adminCode; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Timestamp getEnrolldate() { return enrolldate; } public void setEnrolldate(Timestamp enrolldate) { this.enrolldate = enrolldate; } }
6.编写Admin.Dao
package com.tarena.oss.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.annotation.Resource; import javax.sql.DataSource; import org.springframework.stereotype.Repository; import com.tarena.oss.entity.Admin; /** * * DAO类 * 封装了数据库操作。 * 资源池 * 注: * DAO属于数据访问层,一般使用 * @Repository注解。 */ @Repository("adminDAO") public class AdminDao { @Resource(name="ds1") //使用依赖注入的方式,注入DataSource private DataSource ds; public Admin findByAdminCode( String adminCode) throws SQLException{ Admin admin = null; Connection conn = null; PreparedStatement stat = null; ResultSet rst = null; try{ conn = ds.getConnection(); String sql = "SELECT * FROM admin_info_moy " + "WHERE admin_code=?"; stat = conn.prepareStatement(sql); stat.setString(1, adminCode); rst = stat.executeQuery(); if(rst.next()){ Admin a = new Admin(); a.setAdminId(rst.getInt("admin_id")); a.setAdminCode(rst.getString("admin_code")); a.setPassword(rst.getString("password")); a.setName(rst.getString("name")); a.setTelephone(rst.getString("telephone")); a.setEmail(rst.getString("email")); a.setEnrolldate(rst.getTimestamp("enrolldate")); return a; } } catch (SQLException e){ //记日志(保留现场) e.printStackTrace(); /* * 看异常能否恢复,如果 * 不能恢复(发生了系统异常: * 比如数据库服务暂停),则 * 提示用户稍后重试。 */ throw e; } finally { if(conn!=null){ conn.close(); } } return admin; } }
7.配置db.properties文件(提供数据库连接信息)
driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@192.168.0.206:1521:oracle username=jsd1512 password=jsd1512
8.编写配置文件 spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"> <!-- 开启组件扫描 --> <context:component-scan base-package="controller"/> <!-- 开启springmvc注解扫描 --> <mvc:annotation-driven/> <!-- 配置视图解析器ViewResolver --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 读取properties文件的内容 --> <util:properties id="jdbc" location="classpath:db.properties"/> <!-- 配置DataSource --> <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="url" value="#{jdbc.url}"/> <property name="driverClassName" value="#{jdbc.driver}"/> <property name="username" value="#{jdbc.username}"/> <property name="password" value="#{jdbc.password}"/> </bean> </beans>
17:00
附录
练习:计算一个人的bmi指数。
算法:
bmi指数=体重(KG)/身高(m)/身高(m)
如果bmi指数>24,过重,
否则 正常。
bmiController.java
package controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class bmiController { @RequestMapping("/bmi.do") public String bmitest(){ System.out.println("bmiController的" + "bmitest方法.."); return "bim"; } @RequestMapping("/show.do") public String show(String weight,String height){ System.out.println("bmiController的" + "show方法.."); double wt = Double.parseDouble(weight); double ht = Double.parseDouble(height); System.out.println(wt); System.out.println(ht); if(wt/(ht*ht)<=24.0){ return "Nomal"; }else{ return "Upweight"; } } @RequestMapping("/show2.do") public String show2(user p,ModelMap data){ System.out.println("bmiController的" + "show2方法.."); double ht=p.getHeight(); double wt=p.getWeight(); if((wt/(ht*ht))<=24.0){ data.addAttribute("state","正常的"); }else{ data.addAttribute("state","过重了"); } return "Nomal"; } }
bim.jsp
<%@page pageEncoding="utf-8"%> <html> <head></head> <body sytle="font-size:30px;"> <form action="show.do" method="post"> <fieldset> <legend>Bmi测试</legend> 体重:<input name="weight"/><br/> 身高: <input name="height"/><br/> <input type="submit" value="查看"/> </form> </body> </html>
相关文章推荐
- 开课第一天java
- activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示
- Java垃圾回收机制
- JAVA第三次作业
- 解决java compiler level does not match the version of the installed java project facet
- java 你好!我的java学习之路 day1
- Java第三次作业
- java 使用freemarker 生成word模板
- Spring MVC DispatcherServlet contextConfigLocation设置
- Java学习:动态代理
- java PreparedStatement需要关闭,不然会内存溢出
- Spring事务的隔离级别
- Java中的static关键字解析
- 选择排序
- 40个Java多线程问题总结
- java学习笔记(三)
- Java文件上传的两种方式
- Java课程“新”得(三)
- java多线程——监视锁(monitor)
- Number Triangle