MVC三层结构执行流程
form表单提交的两种方式 get 显示地址栏和参数 不安全
post 不显示 安全
form表单的向servlet传递参数时,(请参考下图)如果以第一行的形式传递参数 action ='/LoginServlet?opr=login" 提交方式为post的话,我们在地址栏中就可以看的 name 和value的值。
所以可以去掉 参数(鼠标选中的部分) 添加<input type="hidden" name="opr" value="login">
地址栏对应的参数就是 opr=login
在servlet中获取参数 request.getParameter("")
form表单的向servlet传递参数时以 <input type="hidden" name="opr" value="selectById">的标签形式隐藏传递
<a href="/NewsServlet?id=${news.id}&opr=selectById">
1 package com.bdqn.dao; 2 3 import java.sql.ResultSet; 4 5 public interface NewsDao { 6 // 示例 public 返回值类型(int、Boolean,String)方法名(userLogin)( 括号里写 参数类型 和 参数名 示例 String name); 7 public ResultSet query(); 8 public ResultSet selectById(Integer id); 9 }
1 package com.bdqn.dao.daoImpl; 2 3 import com.bdqn.dao.NewsDao; 4 import com.bdqn.dao.until.BaseDao; 5 6 7 import java.sql.ResultSet; 8 9 public class NewsDaoImpl extends BaseDao implements NewsDao{ 10 @Override 11 public ResultSet query() { 12 String sql = "SELECT `id`,`title`,`createDate` FROM `news_detail`"; 13 ResultSet rs =this.query(sql); 14 return rs; 15 } 16 17 @Override 18 public ResultSet selectById(Integer id) { 19 String sql = "SELECT `id`,`categoryId`,`title`,`summary`,`content`,`picPath`,`author`,`createDate`,`modifyDate` FROM `news_detail` WHERE id ="+id; 20 ResultSet rs = this.query(sql); 21 return rs; 22 } 23 24 public ResultSet selectByNameAndPwd(String name,String pwd) { 25 String sql = null; 26 sql = "SELECT * FROM `news_detail` where 1=1 "; 27 28 if (name!=null){ 29 sql += "and name ="+name; 30 } 31 if (pwd!=null){ 32 sql += "adn pwd ="+pwd; 33 } 34 35 36 ResultSet rs = this.query(sql); 37 return rs; 38 } 39 40 // 41 } 1 package com.bdqn.service; 2 3 import com.bdqn.entity.News; 4 import com.bdqn.entity.News_detail; 5 6 import java.sql.ResultSet; 7 import java.util.List; 8 9 public interface NewsService { 10 // 示例 public 返回值类型(int、Boolean,String)方法名(userLogin)( 括号里写 参数类型 和 参数名 示例 String name); 11 public List<News> query(); 12 public News_detail selectById(Integer id); 13 14 } 1 package com.bdqn.service.serviceImpl; 2 3 import com.bdqn.dao.NewsDao; 4 import com.bdqn.dao.daoImpl.NewsDaoImpl; 5 import com.bdqn.dao.until.BaseDao; 6 import com.bdqn.entity.News; 7 import com.bdqn.entity.News_detail; 8 import com.bdqn.service.NewsService; 9 10 import java.sql.ResultSet; 11 import java.sql.SQLException; 12 import java.sql.Timestamp; 13 import java.util.ArrayList; 14 import java.util.Date; 15 import java.util.List; 16 17 public class NewsServiceImpl extends BaseDao implements NewsService { 18 @Override 19 public List<News> query() { 20 NewsDao newsDao = new NewsDaoImpl(); 21 ResultSet rs = newsDao.query(); 22 List<News> newsList = new ArrayList<>(); 23 24 try { 25 //循环输出结果集内容放入news对象,添加到newsList集合 26 while (rs.next()){ 27 News news = new News(); 28 String title = rs.getString("title"); 29 Date createDate = 30 rs.getTimestamp("createDate"); 31 Integer id = rs.getInt("id"); 32 news.setTitle(title); 33 news.setCreatedate(createDate); 34 news.setId(id); 35 newsList.add(news); 36 37 System.out.println(111); 38 } 39 40 } catch (SQLException e) { 41 e.printStackTrace(); 42 } 43 BaseDao baseDao = new BaseDao(); 44 try { 45 baseDao.destory(); 46 } catch (SQLException e) { 47 e.printStackTrace(); 48 } 49 return newsList; 50 } 51 52 @Override 53 public News_detail selectById(Integer id) { 54 NewsDao newsDao = new NewsDaoImpl(); 55 ResultSet rs = newsDao.selectById(id); 56 News_detail news_detail = new News_detail(); 57 58 try { 59 while (rs.next()){ 60 int id1 = rs.getInt("id"); 61 int categoryId = rs.getInt("categoryId"); 62 String title = rs.getString("title"); 63 String summary = rs.getString("summary"); 64 String content = rs.getString("content"); 65 String picPath = rs.getString("picPath"); 66 String author = rs.getString("author"); 67 Date createDate = rs.getTimestamp("createDate"); 68 Date modifyDate = rs.getTimestamp("modifyDate"); 69 70 news_detail.setId(id1); 71 news_detail.setCategoryid(categoryId); 72 news_detail.setTitle(title); 73 news_detail.setSummary(summary); 74 news_detail.setContent(content); 75 news_detail.setPicpath(picPath); 76 news_detail.setAuthor(author); 77 news_detail.setCreatedate(createDate); 78 news_detail.setModifydate(modifyDate); 79 } 80 81 } catch (SQLException e) { 82 System.out.println("数据处理异常!"); 83 e.printStackTrace(); 84 } 85 return news_detail; 86 } 87 // 88 }
EL和JSTL显示Servlet传过来的数据
第一步:配置环境
在lib中添加jstl.jra 和 standard.jar包 或者在pom.xml添加两个包的依赖。
第二步:在页面中引用JSTL的库 core核心库和fmt格式化的库
第三步:用EL和JSTL显示数据
转载于:https://www.cnblogs.com/jiayiblog/p/11008025.html
