JavaWeb_day04搜索_乱码_路径_转发重定向_cookie
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
**转载请注明 出自 : luogg的博客园 ** 谢谢配合!
搜索功能
DAO层都是一些数据库的增删改查操作
Servlet,控制层
点击页面的搜索,把输入的信息提交到servlet,
实体Bean是针对数据库中的字段而建的, 不和数据库做对应,而是打包一些零散的值的Bean,和它的页面做对应,包名为:com.xxx.view 针对页面的实体Bean
String sql = "select * from copy_emp where 1=1 ";//这局话可以后边添加对应的and xxx=xxx信息;
//sql语句 精华,判断搜索框是否为空,若不为空,表示输入了数据,那么就在where后边添加对应的and xxx=xxx信息;
if(bean.getEmpId() != null && !"".equals(bean.getEmpId())){
sql = sql + " and employee_id= " + bean.getEmpId();
}
if(bean.getName() != null && ! "".equals(bean.getName())){
sql = sql + " and last_name like '%" + bean.getName() +"%'";
}
if(bean.getStartHiredate() !=null && !"".equals(bean.getStartHiredate())){
sql = sql+ " and hire_date >= to_date('"+bean.getStartHiredate()+"','"+"yyyy-mm-dd"+"')";
}
思路 : 将用户输入的搜索信息,传给servlet,通过页面Bean接受,然后将页面bean通过参数形式传递给dao中的搜索方法,返回list,list返回搜索得到的信息.
页面乱码解决方案
- response.setContentType("text/html;charset=utf-8");//页面显示汉字
- 针对表单提交post请求方式
request.setCharacterEncoding("utf-8); - 针对表单提交get请求方式
String user = request.getParameter("user");
user = new String(user.getByte("iso-8859-1"),"utf-8");
绝对路径和相对路径
开发一般用绝对路径,
绝对路径 : 是一个完整的路径, 语法 : 工程名字/资源的路径
相对路径 : 是相对于当前资源的路径去找别的路径; ../a/index.html 代表从当前路径挑出来一层,找到a文件夹下的index.html资源
相对路径开头不加/,绝对路径开头加/
转发的时候(request.getRequestDispatcher()) , Servlet中绝对路径写的时候不加工程名字
转发重定向(参考day02)
内部转发和重定向的区别 request.getRequestDispatcher(path)转发/response.sendRedirect(path)重定向
区别在于是否发起新的请求,是否共用同一个request对象
- 转发没有发起新的请求,url路径不变,与转发的页面公用一个request对象,因此可以传递信息
- 重定向发起了新的请求,url改变,没有公用一个request对象,不可以传递信息
cookie
//1.创建cookie
Cookie c = new Cookie(String name,String value);
//2.设置cookie的存在时间
c.setMaxAge(3000);
//3.将一个cookie添加到客户端
response.add(c);
//4.读取cookie(从客户端读到服务器)
request.getCookie();
cookie的生命周期分为两种类型 :
- 没有设置过(setMaxAge())时间的,关闭浏览器时生命周期结束
- 设置过时间的,保存在本地磁盘,当设置的时间到达,或把值从本地删除时生命周期结束.
注意:不同浏览器cookie保存的值的位置是不同的