JavaWeb学习笔记(持续更新 ---Session)

一.Java Servlet :

   是运行在 Web 服务器或应用服务器上的java程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

可以接收请求返回响应

Servlet的访问路径和包地址无关,只与注解url配置时的/代表的就是项目的根目录

   

通过jsp访问servlet:

(1)Jsp与servlet同一个包: 直接访问

(2)1.Jsp与servlet不同包,但是jsp在上层:如:   直接根目录加上“servlet包名“/”servlet名“

2.Jsp与servlet不同包,jsp在下层:“..“/“servlet包名“/“servlet名“

反向访问类似。

 

 

二.JSP:

JSP全称Java Server Pages,HTML+CSS+是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头 以%>结束。

JSP本质上是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。

 

三.参数传递的三种方式:

   1.URL传参: eg. <a href="RegServlet?name=admin&pwd=123">访问regServlet</a>

   2.表单传参:

表单中实现参数的传递:

      表单元素name对应参数名

      表单中输入的值对应参数值

      Request.getParamerter("c")

   3.隐藏域实现传参(属于表单元素):

<input type="hidden" name="hide" value="testHide"/>

doGet----处理get类型的

4.get和post对于请求信息的封装是有差别的

1.安全性:

     doGet的信息在地址栏

     信息位置:

Get: URL;

        Post: request对象;

  2.提交内容大小

     Get内容少

     Post内容多

  3.编码问题处理

     Post:设定请求对象的编码

     Get:URL,设定请求编码不起作用,需要手动设置编码

// Form表单中:action=”post(或者get)?传参”

       Get不能传

       Post是可以传的

5.解决中文乱码的三种方式:

1.设定请求和响应对象编码(只针对doPost 方法有效,因为doGet方法的信息不在request中)

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

(2) request.setCharacterEncoding("UTF-8");

2.手动强制转码(针对doGet)

String name=new String(userName.getBytes("ISO-8859-1"),"utf-8");

3.修改tomcat中url的编码(针对doGet 一劳永逸的办法)

6.响应  (流的概念):

  

7.重定向与请求转发

重定向:客户端浏览器发出了两次请求(第二次请求得不到第一次请求中的数据了)

    response.sendRedirect("response.jsp");

   

请求转发:地址栏没有发生变化,客户端浏览器只发出了一次请求

request.getRequestDispatcher("response.jsp").forward(request, response);

8.request作用域(信息共享区域)

(针对请求转发有效)

 Request.setAttribute(”name”,”content”):放入request到信息共享区域(键值对)

 Request.getAttribute(“name”):从信息共享区域取request

 

原因:

重定向:两个请求,放的信息共享区域 !=取的信息共享区域

请求转发:一个请求,放的信息共享区域==取的信息共享区域

9.会话技术:session,cookie

1.Session:位于服务器端的信息共享区域,跨多次请求的信息共享。

2.常见使用:

Jsp会自动创建session对象;

Servlet不会自动创建session,通过getSession() 来创建session对象

SessionServlet里面获得session:

HttpSession session=request.getSession();

Session.setAttribute(“name”,”my name is Leon.”);

Jsp访问session:

 <%String name= session.getAttribute(“name”);

 Out.print(name); -------------------因为在jsp中,所以没有system

%>

3.Session的常见API:

 

(1)获得session:

HttpSession session =request.getSession();//获得会话对象,如果没有,创建后返回;

Session=request.getSession(true);

//如果是true:getSession() 会获得会话; /如果是false:获得当前会话,如果没有返回Null

(2)获得sessionId:

System.out.println(session.getId());

(3)获得会话时间相隔的方法:

System.out.println(session.getCreationTime());//创建会话的时间

System.out.println(session.getLastAccessedTime());//最后一次得到这个会话后过了多少时间

Session.setMaxInactiveInterval(10);//设置session的存活时间为10S

System.out.println(session.getMaxInactiveInterval());//session的存活期

(4)Session的注销:

Session.invalidate();

//session 在web.xml中设置会话时间

//<session-config>

//<session-timout></session-timeout>

//</session-config>

猜你喜欢

转载自www.cnblogs.com/LeonLiuBlog/p/11829485.html
今日推荐