java学习的第四十天: javaweb

 

 

获取前端传递的参数:

<servlet>
       <servlet-name>LoginServlet</servlet-name>
       <servlet-class>com.xiao.Servlet.LoginServlet</servlet-class>
   </servlet>

    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
 <form action="${pageContext.request.contextPath}/login" method="post">
    <span>账号:</span> <input type="text" name="username"> <br>
    <span>密码</span> <input type="password" name="password"><br>
    <span>爱好:</span>
      <input type="checkbox" name="hobby" value="打球">打球
      <input type="checkbox" name="hobby" value="游泳">游泳
      <input type="checkbox" name="hobby" value="唱歌">唱歌
      <input type="checkbox" name="hobby" value="跳舞">跳舞
      <input type="checkbox" name="hobby" value="踢球">踢球
      <input type="checkbox" name="hobby" value="跑步">跑步
    <br>
      <input type="submit" value="提交"><br>
  </form>
package com.xiao.Servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

public class LoginServlet extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       req.setCharacterEncoding("utf-8");
       resp.setCharacterEncoding("UTF-8");
            String username=  req.getParameter("username");  //获取表单里面的值
            String password=  req.getParameter("password");   //这种的话,就是单个的获取
            String[] pa =req.getParameterValues("hobby");   //这种也是获取表单里面传过来的值,但是这种是多个的。
       System.out.println("++++++++++++++++++++++++++++++++");
//       后台接收乱码问题:
       System.out.println(username);         //这里面的内容就是用来打印表单里面传过来的值。
       System.out.println(password);
       System.out.println(Arrays.toString(pa));
       System.out.println("++++++++++++++++++++++++++++++++++");

// 请求转发:
//         其次就是这里的 / 代表的是当前的web项目;

       req.getRequestDispatcher("/succrss.jsp").forward(req,resp);

  }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doGet(req, resp);
  }
}

image-20210725134012602image-20210725134024051image-20210725134035589

 

 

 

请求转发:

 

 

 

Cookie: Session

回话:

回话:用户打开一个浏览器,点击了很多的超链接,访问多个web资源器,关闭浏览器,这个过程可以称之为回话。

 

一个网站怎么证明你l来过?

服务端 客户端

1、服务端给客服端一个 信件,客服端下次访问服务端的时候带上信件就可以了, cookie

2、服务端登记你来过了,下次你来的时候我匹配你。 session

 

保存回话的两种技术:

Cookie: 客服端技术:(请求和响应)

session

服务器技术:利用这个技术,可以保存用户的回话信息。我们可以吧信息或者数据放在session中。

常见使用: 网站登陆之后,你下次不用在登陆了。第二次访问直接就上去了。

 

Cookie:

从请求中拿到cookie信息。

服务器响应给客服端1

    cookie[] cookies=req.getCookies();  //获取cookie
   cookie.getValue()  //获取cookie里面的value
   cookie.getName() //获取cookie里面的值。
   new Cookie("lastLoginTime",System.currentTimeMillis()+"");  //新建一个cookie。
  cookie.setMaxAge(24*60*60);// 设置cookie的有效期。
  addCookie(cookie);// 响应一个cookie给客服端。

 

cookie :

一般都会保存在本地的用户目录下appdata;

 

一个网站cookie是否存在上限,聊聊细节问题。

一个cookie只能保存一个信息。

一个web站点可以给浏览器发送多个cookie,最多存放20个cookie,

cookie大小有限制4kb

300个cookie浏览器上限。

 

删除Cookie

设置有限期,关闭浏览器,自动失效,;

设置有效期的时间为0;

 

 

编码以及解码:

image-20210726101917776

 

 

 

Session(重点)

什么是session:

服务器会给每一个用户(浏览器)创建一个Session对象,

一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在。

用户登陆之后,整个网站它都可以访问啊!-》 保存用户的信息,保存购物车的信息。。。。

Session与Cookie的区别:

Cookie 是吧用户的的数据写给用户的浏览器,浏览器保存,(可以保存多个)

Session 是把用户的数据写到哦能过户独占Session中,服务端保存。(保存重要的信息,减少服务器资源的浪费。)

Session对象是由服务器对象创建。

 

使用场景:

  • 保存一个登陆用户的信息;

  • 购物车信息;

  • 在整个网站中经常会使用的数据,我们将他保存在Sessionz中;

使用Session

 

8、jsp

8.1、什么是jsp

java Server Pages:java服务端页面,也和Servlet一样,用于动态web技术!

最大的特点:

  • 写jsp就像是在HTML:

  • 区别:

  • HTML只给用户提供静态的数据:

  • Jsp页面中可以嵌入JAVA代码,为用户提供动态数据:

8.2、jsp原理:

思路:jsp到底怎么执行的:

  • 代码层面没有任何问题

  • 服务器内部工作

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet !

image-20210726160302987

 

==在jsp页面中==

只要是java代码就会原封不动的输出: 如果是HTML代码,就会被转换为:out。write()输出:

8.3、jsp基础语法:

任何语言都有自己恶的语法,Java中有,jsp作为Java技术的一种应用,它拥有一些自己扩充的语法(了解,知道,即可) java所有语法都支持:

 

jsp表达式:

<%--j's'p表达式:
作用:用于将程序输出,输出到客服端:
<% %>
--%>
  <%= new java.util.Date() %>

jsp脚本片段:

<%--  jsp脚本片段:--%>
<%
int sum=0;
 for (int i = 0; i <100 ; i++) {
    sum+=i;

}
out.println("<h1>Sum="+sum+"<h1>");

%>

 

<%--在代码中嵌入HTMl元素:--%>

<%
   for (int i = 0; i <5 ; i++) {
%>
<h1> 你好 下面的这句话,要输出五次哦,这是第:<%=i+1%>次!</h1>

<%
   }
%>

 

jsp声明:

<%!

这里面就是内容了

%>

jsp声明: 会被编到jsp生成java的类中,其他的,jji就会被ssh生成到_jspService方法中!

 

在jsp中嵌入java代码:

由于原本的Jjsp嵌入Java代码复杂,于是就有了生成的EL表达式!:

 

 

 

 

 

 

 

1

 

posted @ 2021-07-26 23:38  九块钱的代码  阅读(228)  评论(0)    收藏  举报