首页
留言
友链
壁纸
更多
直播
追番
统计
关于
Search
1
欢迎使用 Typecho
189 阅读
2
为Joe主题增加表情包
163 阅读
3
Java的一些基础知识总结
140 阅读
4
『转载』Linux文件自动备份百度网盘
138 阅读
5
Js 音频律动
124 阅读
默认分类
Java
Java基础知识
Java面向对象
JavaWeb服务
前端三剑客
HTML
JS
Typecho
前端小结
Vue
登录
/
注册
Search
标签搜索
Java
Servlet
HTML
面向对象
Web
Vue
JS
Typecho
Typora
Markdown
乐抖系统
Typecho主题
技术教程
类与对象
基础知识
Tomcat
Maven
Linux
MySQL
Mybatis
白衣少年
累计撰写
47
篇文章
累计收到
42
条评论
首页
栏目
默认分类
Java
Java基础知识
Java面向对象
JavaWeb服务
前端三剑客
HTML
JS
Typecho
前端小结
Vue
页面
留言
友链
壁纸
直播
追番
统计
关于
用户登录
登录
注册
搜索到
17
篇
分类为
JavaWeb服务
的文章
2022-11-29
Java-Filter实现权限拦截
要求:用户登录之后才能进入主页,用户注销后就不能进入主页了!首先我们写一个登录的页面<h1>登录</h1> <form action="/servlet/login" method="post"> <input type="text" name="username"> <input type="submit"> </form>然后登录的 servlet ,登录成功或者登录失败public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取前端请求的参数 String username = req.getParameter("username"); if (username.equals("admin")){ //登录成功 req.getSession().setAttribute("USER_SESSION",req.getSession().getId()); resp.sendRedirect("/sys/success.jsp"); //假如用户名正确,就重定向到sys/success.jsp }else { //登录成功 resp.sendRedirect("/error.jsp"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }然后写一个登录失败的jsp,注销后跳转到登录界面<h1>错误</h1> <h3>没有权限,用户名错误</h3> <p><a href="/Login.jsp">返回登录页面</p>我们发现无论成功与否都能进入成功主页:所以我们添加一个过滤器注销后移除sessionpublic class LogoutServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Object user_session = req.getSession().getAttribute("USER_SESSION"); if (user_session!=null){ req.getSession().removeAttribute("USER_SESSION"); resp.sendRedirect("/Login.jsp"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }添加过滤器public class SysFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //通过强转拿到session HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; if (request.getSession().getAttribute("USER_SESSION")==null){ response.sendRedirect("/error.jsp"); } filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }这样过滤以后就拦截了进入主页为了节约性能:我们建一个文件来放我们的 USER_SESSION------>Constantpublic class Constant { public final static String USER_SESSION = "USER_SESSION"; }效果:
2022年11月29日
69 阅读
0 评论
2 点赞
2022-11-29
Java-监听器
监听器的介绍当相关的监听事件被执行后,监听器会自动执行,监听器属于第三种Servlet,监听的Servlet。负责监听Web程序执行的各个操作,监听器在Web中可以对application,request和session三个对象的操作进行监听。监听器实际上也是依靠实现各种监听接口完成的。监听器的实现,编写一个类,去实现监听接口即可。和new个class一样new个Listener,命名有语义,next选择相应对象的changes to attributes实现相应对象的监听接口。建议将监听类放到listener包下。JSP中一共预先定义了9个这样的内置对象,分别为:request、response、session、application、out、pagecontext、config、page、exception内置对象(又叫隐含对象)特点:由JSP规范提供,不用编写者实例化。通过Web容器实现和管理所有JSP页面均可使用只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)request对象request 对象是javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。session对象session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。application对象application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。Web监听器概念Servlet规范中定义的一种特殊类用于监听ServletContext,HttpSession和ServletRequest等域对象的创建与销毁事件用于监听域对象的属性发生修改的事件可以在事件发生前,发生后做一些必要的处理监听器的用途统计在线人数和在线用户系统启动时加载初始化信息统计网站访问量跟Spring结合
2022年11月29日
42 阅读
0 评论
2 点赞
2022-11-25
Java-Filter过滤器
1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器 2、Filter 过滤器它是 JavaEE 的规范。也就是接口 3、Filter 过滤器它的作用是:拦截请求,过滤响应。 拦截请求常见的应用场景有: 1、权限检查 2、日记操作 3、事务管理 ……等等
2022年11月25日
73 阅读
0 评论
4 点赞
2022-11-17
Java-Mvc
什么是MVCModel:模型层View:视图层Controller:控制层MVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。Mvc的三层架构三层架构是指: 视图层 View 、 服务层 Service ,与 持久层 Dao 。它们分别完成不同的功能。 View层 :用于接收用户提交请求的代码在这里编写。 Service层 :系统的业务逻辑主要在这里完成。 Dao层 :直接操作数据库的代码在这里编写。为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合。
2022年11月17日
35 阅读
0 评论
2 点赞
2022-11-11
Java-JavaBean
实体类javaBean有特定的写法:必须要有无参构造 属性必须为 private 必须get,set方法一般用来和数据库的字段做映射ORM(Object Relation Mapping) 对象关系映射表--->类 字段--->属性 行记录--->对象peopleb表:idnameageaddress1张三22河南2李四18上海3王五24深圳class People{ private int id; private String name; private int age; private String address; public void people(){} public void people(int id, String name,int age,String address){ this.id=id; this.name=name; this.age=age; this.address=address; } } class Main{ public static void main(String args[]){ new People(1,"张三",22,"河南"); } }作业-- 创建数据库 create database smbms; use smbms; -- 创建地址表格 drop table if exists smbms_address; create table smbms_address( id bigint(20) not null auto_increment comment '主键id', contact varchar(15) collate utf8_unicode_ci default null comment '联系人姓名', addressDesc varchar(50) collate utf8_unicode_ci default null comment '收货地址明细', postCode varchar(15) collate utf8_unicode_ci default null comment '邮编', tel varchar(20) collate utf8_unicode_ci default null comment '联系人电话', createdBy bigint default null comment '创建者', creationDate datetime default null comment '创建时间', modifyBy bigint default null comment '修改者', modifyDate datetime default null comment '修改时间', userId bigint default null comment '用户ID', primary key (id) ) engine=InnoDB auto_increment=7 default charset=utf8 collate=utf8_unicode_ci; -- 创建订单表 drop table if exists smbms_bill; create table smbms_bill( id bigint not null auto_increment comment '主键id', billCode varchar(20) collate utf8_unicode_ci default null comment '账单编码', productName varchar(20) collate utf8_unicode_ci default null comment '商品名称', prodectDesc varchar(50) collate utf8_unicode_ci default null comment '商品描述', productUnit varchar(10) collate utf8_unicode_ci default null comment '商品单位', productCount decimal(20,2) default null comment '商品数量', totalPrice decimal(20,2) default null comment '总金额', isPayment tinyint default null comment '支付状态(0:未支付;1;已支付)', createdBy bigint default null comment '创建者(userId)', creationDate datetime default null comment '创建时间', modifyBy bigint default null comment '更新者(userId)', modifyDate datetime default null comment '更新时间', providerId bigint default null comment '供应商ID', primary key (id) ) engine=InnoDB auto_increment=19 default charset=utf8 collate=utf8_unicode_ci; -- 创建供应商表 drop table if exists smbms_provider; create table smbms_provider( id bigint not null auto_increment comment '主键id', proCode varchar(20) collate utf8_unicode_ci default null comment '供应商编码', proName varchar(20) collate utf8_unicode_ci default null comment '供应商名称', proDesc varchar(50) collate utf8_unicode_ci default null comment '供应商详细描述', proContact varchar(20) collate utf8_unicode_ci default null comment '供应商联系人', proPhone varchar(20) collate utf8_unicode_ci default null comment '供应商电话', proAddress varchar(50) collate utf8_unicode_ci default null comment '供应商地址', proFax varchar(20) collate utf8_unicode_ci default null comment '供应商传真', createdBy bigint default null comment '创建者(userId)', creationDate datetime default null comment '创建时间', modifyBy bigint default null comment '更新者(userId)', modifyDate datetime default null comment '更新时间', primary key (id) ) engine=InnoDB auto_increment=16 default charset=utf8 collate=utf8_unicode_ci; -- 创建角色表 drop table if exists smbms_role; create table smbms_role( id bigint not null auto_increment comment '主键id', roleCode varchar(20) collate utf8_unicode_ci default null comment '角色编码', roleName varchar(20) collate utf8_unicode_ci default null comment '角色名称', createdBy bigint default null comment '创建者(userId)', creationDate datetime default null comment '创建时间', modifyBy bigint default null comment '更新者(userId)', modifyDate datetime default null comment '更新时间', primary key (id) ) engine=InnoDB auto_increment=4 default charset=utf8 collate=utf8_unicode_ci; -- 创建用户表 drop table if exists smbms_user; create table smbms_user( id bigint not null auto_increment comment '主键id', userCode varchar(15) collate utf8_unicode_ci default null comment '用户编码', userName varchar(15) collate utf8_unicode_ci default null comment '用户名称', userPassword varchar(15) collate utf8_unicode_ci default null comment '用户密码', gender tinyint default null comment '0:女,1:男', phone varchar(15) collate utf8_unicode_ci default null comment '手机', address varchar(50) collate utf8_unicode_ci default null comment '地址', userrole bigint default null comment '用户角色(取自角色表,角色ID)', createdBy bigint default null comment '创建者(userId)', creationDate datetime default null comment '创建时间', modifyBy bigint default null comment '更新者(userId)', modifyDate datetime default null comment '更新时间', primary key (id) ) engine=InnoDB auto_increment=16 default charset=utf8 collate=utf8_unicode_ci;
2022年11月11日
113 阅读
0 评论
4 点赞
1
2
...
4