JAVA从零学re从零开始的JAVA学习03——<javaEE阶段三基础版>(需要完善)

day03 JAVAWEB四大域对象、jsp

一 Servlet

概念:Servlet 运行在服务端的Java小程序,是sun公司提供一套规范,用来处理客户端请求、响应给浏览器的动态资源。

     Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener),且最重要。 

 1 <!-- demo01 servlet hello start
 2 \3. 浏览器访问 在浏览器地址栏输入:http://localhost:8080/day14/hello
 3 l 浏览器显示空白页面
 4  
 5   l 控制打印信息
 6  
 7  
 8     * <servlet> 注册servlet
 9  
10         <servlet-name> servlet名称,当前xml中唯一
11  
12         <servlet-class> servlet实现类的全限定类名
13  
14     * <servlet-mapping> 给注册的servlet添加映射路径
15  
16         <servlet-name> 已经注册的servlet名称。注意:必须与注册的名称一致。
17  
18         <url-pattern> 访问路径。要求:必须/开头
19  
20 -->
21  
22 <servlet>
23  
24     <servlet-name>helloServlet</servlet-name>
25  
26     <servlet-class>cn.itcast.demo01.a_servlet.HelloServlet</servlet-class>
27  
28 </servlet>
29  
30 <servlet-mapping>
31  
32     <servlet-name>helloServlet</servlet-name>
33  
34     <url-pattern>/hello</url-pattern>
35  
36 </servlet-mapping>
37  
38  
39 <!-- demo01 servlet hello end -->
配置xml

也可以使用注解来代替配置文件

方法:获取请求参数

 

 

小案例

使用Servlet完成一个用户登录的案例

 

 

Servlet的生命周期

何时创建:用户第一次访问Servlet创建Servlet的实例 (单实例) 

何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候. 

 

 大概了解

 

 注解代替

 

 

二:ServletContext(四大域对象)

概念:ServletContext对象,tomcat为每一个web项目单独创建的一个上下文(知上知下贯穿全文)对象。服务器启动的 时候,

为每个WEB应用创建一个单独的ServletContext对象,我们可以使用这个对象存取数据,用这个对象存取的数据 可以在整个WEB应用中获得。 

常用方法:

 

 

 

 

 

 

 

 1 public class ReadFileServlet extends HttpServlet {
 2  
 3     public void doGet(HttpServletRequest request,
 4  
 5                       HttpServletResponse response)throws ServletException, IOException {
 6  
 7         ServletContext context = this.getServletContext();
 8  
 9         PrintWriter out = response.getWriter();
10  
11         InputStream in = context.getResourceAsStream("/WEBINF/classes/itcast.properties");
12  
13         Properties pros = new Properties();
14  
15         pros.load(in);
16  
17         out.println("Company=" + pros.getProperty("Company") + "<br>");
18  
19         out.println("Address=" + pros.getProperty("Address") + "<br>");
20  
21     }
22  
23     public void doPost(HttpServletRequest request,
24  
25                        HttpServletResponse response)throws ServletException, IOException {
26  
27         this.doGet(request, response);
28  
29     }
30  
31 }
使用

 

三 :Response

setStatus(int status)方法  设置状态码

 

 

 

解决中文输出乱码问题

在开发中,如果需要响应给浏览器中文数据,我们需要使用getWriter()方法,tomcat使用getWriter()处理字符时,

默认编码时ISO8859-1。响应给浏览器的数据,此时为乱码。在开发中我们需要使用setCharacterEncoding方法

设置编码。此时响应给浏览器的数据为正常数据,但浏览器查看编码,可能使我们查看到内容仍为乱码,需要

使用 响应头 content-type进行设置。

 

// 设置HttpServletResponse使用utf-8编码,此数据提供给tomcat使用。

response.setCharacterEncoding("utf-8");

// 通知浏览器查看编码为utf-8

response.setHeader("Content-Type","text/html;charset=utf-8");

代替

response.setContentType("text/html;charset=utf-8"); 

(*)重定向

 response.sendRedirect

 // 1.接收参数        
String filename = request.getParameter("filename");      
  // 2.完成文件下载:             
   // 2.1设置Content-Type头       
 String type = this.getServletContext().getMimeType(filename);        response.setHeader("Content-Type", type);  
    // 2.2设置Content-Disposition头        
response.setHeader("Content-Disposition", "attachment;filename="+filename);
        // 2.3设置文件的InputStream.       
 String realPath = this.getServletContext().getRealPath("/download/"+filename);       InputStream is = new FileInputStream(realPath);      
  // 获得response的输出流:
        OutputStream os = response.getOutputStream();  
      int len = 0;        byte[] b = new byte[1024];    
    while((len = is.read(b))!= -1){  
          os.write(b, 0, len);        }
 
        is.close();
 
文件下载

四 :Request

概念:在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求 消息。

由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在HttpServletRequest接口中定 义了获取请求行、

请求头和请求消息体的相关方法,接下来,本节将针对这些方法进行详细地讲解

 

 

 

获取请求头信息的相关方法

 

 

 

获取请求参数

 

 

 

设置请求参数中文乱码问题 request.setCharacterEncoding("utf-8");

 

请求转发

 

 

 

 

 

 request.setAttribute("company", "xxx有限公司");       

RequestDispatcher dispatcher = request.getRequestDispatcher("/result");   

    dispatcher.forward(request, response)

JSP的简单使用

概念:JSP全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java 代码共同存在,

其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。为 了与传统HTML有所区别,JSP文件的扩展名为.jsp。

实行原理

 

 

 

jsp写java代码的三种方式

<% 普通代码%>

<%! 方法或成员变量%>

<%=表达式%>

 

jsp的九大内置对象

 

 

封装JaveBean的第三方jar包BeanUtils

BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。

它可以给JavaBean封 装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。  

 

 

 

Cookie和Session

会话技术

 

Cookie

 

 

@WebServlet(name = "CookieServlet1",urlPatterns = "/cookie1") public class CookieServlet1 extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request, response);    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
    //创建cookie     
   Cookie cookie = new Cookie("username","tom");     
   //设置cookie的路径——浏览器根据这个路径判断那些cookie要发送给服务器        cookie.setPath("/day04");        
//将cookie发送给浏览器        
response.addCookie(cookie);    } 
}
View Code

 

 

 

 

 

 Session

 

 

 

原理

 

 

 

 

 Session持久华 延长保存id的cookie的时间 自己默认是30分钟也可以延长

 

 

 小案例:使用Session保存验证码信息

view

 

 

 Controller

 

 

 

 

 

 登入

 

 

 Model

四大域对象

  • SevletContext
  • Session
  • requset
  • pageContext

 

posted @ 2020-03-09 22:51  袁德华  阅读(104)  评论(0)    收藏  举报