javaWeb项目中用到的对象和方法

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

并不完整的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");

请求转发和重定向


请求转发

特点:

  1. 一次请求

  2. 客户端的url不会变

  3. 服务器端的转发, 只能转发到服务器内部资源

//先得到转发器对象RequestDispatcher,再调用转发器对象forword()的方法 
request.getRequestDispatcher("index.jsp").forward(request,response);

重定向

 特点:

  1. 两次请求,request域无效;
  2. 客户端地址栏发生变化
  3. 跳转发生在客户端
  4. 无法跳转到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发布项目,客户端访问的是发布路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值