并不完整的javaweb项目使用到的对象和方法,还有遇到的问题,问题很多,待完善记录。
ServletContext 域对象
作用:作为全局共享数据容器
键值对结构
javaWeb中的四大域
- application 全局
- session域 同一个会话内
- request域 同一个请求中
- page域 这个页面 this 同一个servlet有效
request和response
<a href="${pageContext.request.contextPath}/user/jumpPage?page=add"></a>request
请求
String getParamter(String name)获取请求参数一个请求参数多个值
String[] loves = request.getParameterValues("love"); //数组转集合 List list = Arrays.asList(loves);一次性得到所有参数
//一次性获取所有请求参数 Map<String ,String[]> parameterMap = request.getParameterMap(); //遍历map集合 //先遍历key得到value //得到EntrySet Set<Map.Entry<String, String[]>> entries = parameterMap.entrySet(); for (Map.Entry<String ,String []> entry:entries){ System.out.printf(entry.getKey()+"-->"+Arrays.asList(entry.getValue())); }${pageContext.request.contextPath} 相当于 <%=request.getContextPath()%>
得到相对路径
点击a标签后url为
http://localhost:8080/user/jumpPage?page=add
String getContextPath()返回上下文路径
String getQueryString()返回请求URL中的参数 问号?后面的参数 如:?page=add
- String getRequestURI()返回请求URI路径 如:/hello/oneServlet
- StringBuffer getRequestURL()返回请求URL路径,如:http://localhost:8080/user/jumpPage 不包括参数
- String getRemoteAddr():返回当前客户端的IP地址
String getContentType() 获取请求类型
GET请求没有请求体,返回null;POST请求,默认返回为application/x-www-form-urlencoded,表示请求体内容使用了URL编码
解决POST编码
request.setCharacterEncoding("UTF-8");response
响应对象,可以使用响应流向客户端输入响应正文
//字符响应输出流 PrintWriter out = response.getWriter(); //字节响应输出流 ServletOutputStream out = response.getOutputStream();PrintWriter 不能和 ServletOutPutStream 共用
response.setContentType("text/html;charset=utf-8");使用ajax不能把数据保存到域 不能用请求转发和重定向//响应输出流把数据给客户端 默认编码ISO-8859-1 需设置成utf-8 response.getWriter().print("你的姓名:"+name+",你的年龄:"+age);response.setContentType("text/html;charset=utf-8");响应体 服务器告诉浏览器响应的内容类型
- charset 对文本文件有效
- text/html 响应html文本
JavaWeb使用Request,Response 默认编码: ISO-8859-1
设置编码——请求+响应
request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8");
请求转发和重定向
请求转发
特点:
一次请求
客户端的url不会变
服务器端的转发, 只能转发到服务器内部资源
//先得到转发器对象RequestDispatcher,再调用转发器对象forword()的方法 request.getRequestDispatcher("index.jsp").forward(request,response);重定向
特点:
- 两次请求,request域无效;
- 客户端地址栏发生变化
- 跳转发生在客户端
- 无法跳转到WEB-INF 访问/WE-INFO 静态资源 需要请求转发
//加项目名 request.ContextPath() response.sendRedirect(req.getContextPath()+"/demo1.html");重定向和请求转发的区别
重定向 请求转发 拿到域对象的区别 没有request域对象 可以使用request域对象 请求次数 发送两次请求 发送一次请求 浏览器地址 改变 不变 访问外部资源 可以 不能 发起 浏览器 服务器内部
MVC
javaweb三层模型
service层 处理业务逻辑
web层 接受用户请求
dao层 与数据库通信
为了技术的隔离,技术扩展
调用顺序:web——调用》service——调用》dao 只能上层调用下层
层与层使用接口隔离
javaweb项目遇到的问题: 不完全
javaWeb的三层模型用到的工厂类
property配置文件里不要加 ; 分号
什么是propety文件?
为了实现参数改变时不需要改代码,使用动态配置,提高程序的灵活性和可扩展性。
项目分发布路径和部署路径
out目录下的项目:tomcat发布项目,客户端访问的是发布路径。

该博客记录了不完全的JavaWeb项目使用的对象、方法及遇到的问题。介绍了ServletContext域对象,request和response的使用,请求转发和重定向的特点及区别,还提及MVC三层模型,包括service、web、dao层,以及项目中工厂类、配置文件等相关内容。



被折叠的 条评论
为什么被折叠?



