您的位置:首页 > 编程语言 > Java开发

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项目(上)

———————————————–上午部分—————————————————-

读取请求参数

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: