当前位置: 首页 > wzjs >正文

网站关键字怎么做陕西省建设厅网站月报

网站关键字怎么做,陕西省建设厅网站月报,企业网站建设的基本原则,seo研究中心超逸seoWeb资源访问的流程 由此可见 客户访问JAVA开发的应用时 会先通过 监听器(Listener)和 过滤器(Filter) 今天简单的了解下这两个模块的开发过程 监听器(Listener) 主要是监听 我们触发了什么行为 并进行反应…

Web资源访问的流程

由此可见 客户访问JAVA开发的应用时 会先通过 监听器(Listener)和 过滤器(Filter) 今天简单的了解下这两个模块的开发过程

监听器(Listener)

主要是监听 我们触发了什么行为 并进行反应 下面是一个监听Session的例子

正常创建项目后 目录文件如下

CSession代码
import jakarta.servlet.http.*;
import java.io.IOException;@WebServlet("/CS")  // 映射到路径 "/CS"
public class CSession extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 控制台输出,表示正在创建 SessionSystem.out.println("creat Session");// 调用 req.getSession() 方法获取或创建 Session// 如果请求中没有 Session,则自动创建新 Sessionreq.getSession();}
}
DSession代码
package com.example.listendemo1.Servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;@WebServlet("/DS")  // 映射到路径 "/DS"
public class DSession extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 控制台输出日志,表示正在销毁 SessionSystem.out.println("kill Session");// 获取当前 Session 并立即使其失效// invalidate() 方法会销毁 Session,清除所有存储的属性req.getSession().invalidate();}
}

以上两个代码操作为 访问路径(/CS|/DS)后对Session进行创建(删除)操作

ListenSession代码
package com.example.listendemo1.Listener;import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;@WebListener
public class ListenSession implements HttpSessionListener {@Overridepublic void sessionCreated(HttpSessionEvent se) {// 输出 Session 创建日志(控制台)System.out.println("Session created in Listen Session");}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {// 输出 Session 销毁日志(控制台)System.out.println("Session destroyed in Listen Session");}
}

监听器(Listener)运行情况

在没有操作时就会产生默认操作

创建Session

删除Session 监听器监听到了该动作

过滤器(Filter)

路径如下

TextServlet代码
package com.example.filterdemo1.Servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/text")  // 定义Servlet访问路径
public class TextServlet extends HttpServlet {//处理HTTP GET请求@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 从请求中获取名为"code"的参数值String code = req.getParameter("code");// 获取响应输出流(自动设置text/html内容类型)PrintWriter out = resp.getWriter();// 将参数值写入响应out.println(code);// 刷新并关闭输出流out.flush();out.close();}
}

XssFilter代码
package com.example.filterdemo1.filter;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;@WebFilter("/text") // 只过滤/text路径的请求
public class XssFilter implements Filter {// 过滤器初始化方法(容器启动时执行一次)@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("XssFilter first"); // 初始化日志}// 过滤器销毁方法(容器关闭时执行)@Overridepublic void destroy() {System.out.println("XssFilter end"); // 销毁日志}// 过滤处理方法(每次请求时执行)@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {System.out.println("XssFilter now"); // 处理请求日志// 类型转换获取HttpServletRequestHttpServletRequest requset = (HttpServletRequest) servletRequest;// 获取请求参数code的值String code = requset.getParameter("code");// 检查是否不包含<script>标签if (!code.contains("<script>")) {// 安全请求,放行filterChain.doFilter(servletRequest, servletResponse);} else {// 检测到潜在XSS攻击System.out.println("XssFilter fight!!"); // 攻击日志// 注意:这里只是记录日志,实际应该阻止请求继续处理}}
}
测试代码运行如下:

预启动

添加代码--text?code=<script>alert(1)</script>     正常执行可以在页面弹出1

显示受到了攻击

正常情况是这个样子--text?code=123

第二个例子:/admin

AdminServlet代码
package com.example.filterdemo1.Servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;//管理员后台Servlet@WebServlet("/admin")  // 定义Servlet访问路径为/admin
public class AdminServlet extends HttpServlet {// 处理HTTP GET请求@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 控制台输出欢迎信息System.out.println("Welcome to Admin Servlet");}
}
AdminFiler代码
package com.example.filterdemo1.filter;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;// 管理员权限过滤器// 作用路径:/admin
@WebFilter("/admin") // 过滤所有访问/admin路径的请求
public class AdminFilter implements Filter {// 过滤器初始化方法(容器启动时执行一次)@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("XssFilter first"); // 初始化日志}// 过滤器销毁方法(容器关闭时执行)@Overridepublic void destroy() {System.out.println("XssFilter end"); // 销毁日志}/*** 过滤处理方法(每次访问/admin时执行)* 通过检查Cookie验证管理员权限*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {// 转换请求对象以获取CookieHttpServletRequest requset = (HttpServletRequest) servletRequest;// 获取请求中的所有CookieCookie[] cookies = requset.getCookies();// 遍历所有Cookiefor (Cookie c : cookies) {String cName = c.getName(); // 获取Cookie名称String cValue = c.getValue(); // 获取Cookie值// 打印Cookie信息(调试用)System.out.println(cName);System.out.println(cValue);// 检查是否为管理员Cookieif (cName.equals("username") && cValue.equals("admin")) {// 验证通过,放行请求filterChain.doFilter(servletRequest, servletResponse);return; // 找到有效Cookie后立即返回} else {// 非管理员CookieSystem.out.println("NO ADMIN");}}}
}
实验结果如下:

会打印出Cookie值 因为是循环输出 Cookie都会被输出 admin认证成功 第二个password也会输出 但是没有对password进行判断 所有会输出NO ADMIN


文章转载自:

http://q1kpSVjP.zLgbx.cn
http://PnNv8ygj.zLgbx.cn
http://2OmMrVj2.zLgbx.cn
http://sweqpaE2.zLgbx.cn
http://mynsSae3.zLgbx.cn
http://AXqGpXyc.zLgbx.cn
http://0aJyJspR.zLgbx.cn
http://F40leQEO.zLgbx.cn
http://bM5NlHyR.zLgbx.cn
http://fRkh2RMk.zLgbx.cn
http://IS2SXB98.zLgbx.cn
http://OsDRO4cK.zLgbx.cn
http://qV6cknce.zLgbx.cn
http://bRubDaOO.zLgbx.cn
http://aTZGDB6k.zLgbx.cn
http://MgOBFphP.zLgbx.cn
http://5M3DrCSZ.zLgbx.cn
http://5a0nFnKu.zLgbx.cn
http://OCrPPuKJ.zLgbx.cn
http://7364is3S.zLgbx.cn
http://4XPX3fdL.zLgbx.cn
http://UdXgHVQf.zLgbx.cn
http://zaBFyblb.zLgbx.cn
http://0iMilcJi.zLgbx.cn
http://jKbgNL43.zLgbx.cn
http://EZQ4aioW.zLgbx.cn
http://DCSILyko.zLgbx.cn
http://gsa2GwMB.zLgbx.cn
http://xCSnGEVP.zLgbx.cn
http://jQheqP7Q.zLgbx.cn
http://www.dtcms.com/wzjs/655607.html

相关文章:

  • 手机网站开发ioswordpress主题 插件下载
  • 怎么建购物网站qq网站登录入口
  • 做网站刷点击狼窝网站更新升级通知
  • 韩国唯美网站设计一屏网站模板下载 迅雷下载 迅雷下载地址
  • 关于解决网站 建设经费的请示关键词检索怎么弄
  • 网站开发 运维 招投标绍兴在线制作网站
  • 接单网站设计 只做设计图报价大型网站建设培训课件
  • 可信网站验证多少钱网站建设 有限公司
  • 延边网站开发国家信用信息企业公示系统官网
  • 网站网络营销wordpress 脚本慢
  • 兰州市住房和城乡建设局网站品牌建设公司排名
  • 网站 网站建设定制做网站交易平台挣钱吗
  • php做网站项目的思路0797 网站制作
  • 邯郸网站开发定制装修设计图免费软件
  • 营销网站制作全包网站建设价格标准新闻
  • 如何删除自己建的网站网站页面关键字在哪里
  • 贵州省住房和城乡建设网站朝阳市网站制作
  • wordpress建站创业wordpress admin改密码忘记
  • 影楼网站怎么做服饰的网站建设
  • 石家庄市交建高速公路建设管理有限公司网站企业网站建设目的意义
  • 汽车设计网站wordpress 换语言包
  • 做网站云服务器装系统深圳市公司网站建设平台
  • 晋中城市建设招标网站购物网站建设实训心得体会
  • 企业网站管理系统 才能湖南岚鸿网站做移动适配以后可以取消吗
  • 4a景区网站建设标准emlog怎么转换到WordPress
  • 做期货看什么网站的资讯做一个简单网页
  • 模具公司网站中品质见证怎么做打开百度网页
  • 用vs做的网站怎么打开吗金乡县住房与城乡建设局网站
  • 洛阳网站建设的公司网站宣传片的创意
  • 做网站的荣誉证书一般使用的分辨率的显示密度