首页 > 其他分享 >12/14

12/14

时间:2023-12-21 14:57:22浏览次数:30  
标签:12 14 resp req session import servlet javax

周四,今天雪又开始下了,这些天最大的雪也就是今天了。昨天下午乒乓球课考试,b组淘汰赛三连胜。

今天下午开始,一片片雪花开始飘落,我们顶着风雪,来到第九实验楼,路上的雪已有六公分厚,还在不停的下,一直下。

又学了一些新的知识,不过好像现在我的web用不了,以后好好研究,为之后的开学考做准备。

seession是一个为了保存用户状态而创建的一个特殊的对象

其本质上相当于Map,里面可以存放多个键值对,是以key-value进行存放的(key必须是一个字符串,value是一个对象)

该对象主要保持相应数据的唯一性(一般用于存储主键)

session的常用方法

1、获取session对象的方法------request.getSession();

2、存放相关属性的方法------session.setAttribute(String s,Object o);

3、从session中获取存放的属性方法------session.getAttribute(String s);

4、删除session属性的方法------session.removeAttribute(String s);

5、得到session所对应的id------session.getId();

6、使得session立即无效------session.invalidate();

7、设置session存活的最长时间------session.setMaxInactiveInterval(int i);
实例
//mainServlet.java
package com.example.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/mainServlet")
public class mainServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");

        HttpSession session=req.getSession();
        Object username=session.getAttribute("username");
        PrintWriter pw=resp.getWriter();

        if(username!=null){
            pw.write("登录成功!");
        }else{
            pw.write("登录失败!");
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
<!--index.jsp-->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>注册页面</title>
  </head>
  <body>
  <center>
    <form action="Session" method="post">
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="username" placeholder="请输入用户名"></td>
      </tr>
      <p>
      <tr>
        <td>密码:</td>
        <td><input type="text" name="password" placeholder="请输入密码"></td>
      </tr>
      <p>
      <tr>
        <button type="submit" value="提交">提交</button>
      </tr>
    </form>
  </center>
//Session.java
package com.example.mapper;

import com.example.pojo.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/Session")
public class Session extends HttpServlet{
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username=req.getParameter("username");
        String password=req.getParameter("password");

        if(username.equals("tom")&&password.equals("tom123")){
            HttpSession session=req.getSession();

            session.setMaxInactiveInterval(60*60*24);
            session.setAttribute("username",username);
            resp.sendRedirect(req.getContextPath()+"/mainServlet");

        }else{
            resp.setContentType("text/html;charset=utf-8");

            PrintWriter pw=resp.getWriter();
            pw.write("账号或密码错误!");
            pw.write("<a href='"+req.getContextPath()+"/index.jsp'></a>");
        }
    }

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

与Cookie的比较

可以看出来,与Cookie相比较的话,Session更具有安全性,范围更广,可以在不同页面共享数据,使用更为方便;


标签:12,14,resp,req,session,import,servlet,javax
From: https://www.cnblogs.com/kongxiangzeng/p/17919032.html

相关文章

  • 2023年12月12日
    通过这几天对《代码大全》的阅读有了以下自己的感悟与体会。具体体会与感悟入下:《代码大全2》是一本非常经典的软件开发书籍。在书中,强调了比较优秀的代码结构和命名规范的重要性。书中注释的部分帮助我理解怎么去编写有意义的注释,合适的注释可以提供代码理解上的便利,但是过多......
  • [Ynoi2007]rfplca/[CF1491H] Yuezheng Ling and Dynamic Tree
    题目描述给定一棵大小为\(n\)的\(1\)为根节点的树,树用如下方式给出:输入\(a_2,a_3,\dots,a_n\),保证\(1\leqa_i<i\),将\(a_i\)与\(i\)连边形成一棵树。接下来有\(m\)次操作,操作有两种:1lrx令\(a_i=\max(a_i-x,1)(l\leqi\leqr)\)。2uv查询在当前的\(a\)......
  • 12/13
    又是一周三,本周就要考四级了,英语老师在课上也开始讲解一些四级知识,并讲解了一些作文。在网上也找到了一些作文模板。1、第一段引出话题:Thetopicof(主题)hastriggeredanavalancheofmixedreactionsanddebatesnotonlyinreallifebutinthenetwork,whichboilsdo......
  • 12/11
    又是周一,现在周一只有下午有课,而今天下午是王老师考试前最后一次课,本来课已经截止,但我们还是凭自愿来上课。下周就要考试了,说实话我对现在的知识的掌握任然有很大的问题,同学有很多用的是框架,我想学一下他们,但现在更改对考试来说已经迟了。现在我主要用的结构。第一个界面:update......
  • 嵌入式教程_DSP教学实验箱操作:5-14 灰度图像二值化(LCD显示)
    一、实验目的学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。二、实验原理图像二值化图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可......
  • 12/05
    今天周二,上午是数据结构和马原。下午和同学打了一会乒乓球。逛博客园学习。Cookie存活时间:默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁持久化:setMaxAge:设置存活时间(单位:秒s)正数:倒计时结束,Cookie自动删除负数:默认值,关闭即销毁零:立刻删除Cookie......
  • 12-21
    销售订货管理系统是ERP的源头,如何管控销售订单下达、评审、跟进,不光是从软件上做约束管理,同时要从工作流程规定上做规范。【开发目的】规范公司订单下达、评审业务流程,提高客户订单准时交货率。【适用范围】适用于公司订单处理过程。【术语定义】无【岗位职责】4.1业务部......
  • Landsat7_C2_ST数据集2019年1月-2022年12月
    简介:Landsat7_C2_ST数据集是经大气校正后的地表温度数据,属于Collection2的二级数据产品,以开尔文为单位测量地球表面温度,是全球能量平衡研究和水文模拟中的重要地球物理参数。地表温度数据还有助于监测作物和植被健康状况,以及极端高温事件,如自然灾害(如火山爆发、野火)和城市热岛效......
  • 网工内推 | 上市公司,数据库运维,OCP认证优先,14薪
    01税友集团招聘岗位:运维工程师职责描述:1、对税务局端的日常支持与维护,监控局端(或平台)程序、数据库、服务器运行情况;2、税务局端软件测试与升级工作;3、根据税务局用户的咨询以及相关服务人员的反馈,收集局端系统存在的问题并进行故障排查,配合研发处理系统的版本优化;提出日常工作的改......
  • 12.20~12.21
    昨天奥赛课帮同学调最短路,原理大概就是修改一下dij,结果一直没整出来,以为是思路假了,结果是他板子存图出锅了\(“我可是一个个看着书敲的,肯定没问题”\)JD说的还挺对,这话就不能信奥赛自习终于把题调出来了,发现是返回值的时候接收的那个变量根本就不对,真服了12.21上午好消息......