web开发
文章平均质量分 63
绿风天空
这个作者很懒,什么都没留下…
展开
-
JavaWeb 项目实现(五) 用户管理功能
这两个方法是类似的,都是先写一个基础的查询语句,再根据参数,向查询语句中继续附加where中的条件。这里不仅要查用户表,还要查角色表,所以sql语句会比之前的更复杂一些。简单来说就是根据用户名和用户角色来查询,得到用户列表。根据户名和用户角色,获取用户数量和用户列表。3. Servlet实现。获取jsp页面传递的参数。原创 2023-08-03 15:21:23 · 543 阅读 · 0 评论 -
JavaWeb 项目实现(四) 验证旧密码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使用易于读写的文本格式来表示数据,通常用于在客户端和服务器之间传递数据。JSON格式由键值对组成,其中键是字符串,值可以是字符串、数字、布尔值、数组、对象或null。步骤很简单,从Session中取到当前密码,和修改密码界面得到的旧密码对比,判断是否相等。在使用Ajax的时候,我们看到了数据类型是json,所以来了解一下jason。JSON格式具有很多优点,例如易于读写、易于解析、轻量级、可读性好等。原创 2023-08-01 12:27:29 · 1355 阅读 · 1 评论 -
JavaWeb 项目实现(三) 修改密码功能
从JSP中获取新密码,从Session中获取用户id,调用Service的更新密码方法,然后show message,完成页面跳转。updateUserPassword方法里:写sql语句,执行sql语句。每个部分都有不同的职责和功能,以实现代码的分离和可维护性。获取数据库连接,把从Servlet层得到的参数,传给Dao。1.MVC架构在JavaWeb中的应用。2.代码分离,来完成修改密码的功能。原创 2023-07-31 14:05:24 · 2717 阅读 · 0 评论 -
JavaWeb 项目实现(二) 注销功能
在过滤器中,我们去Session中取用户信息,若为空,则重定向至错误页面。若不为空,则正常访问页面。实现登录功能的时候,我们是核对了用户名密码正确,再跳转主页。可是如果我们不登录,直接访问主页的url,也是可以进入的。所以我们要设置权限过滤器,保证只有登录用户才能访问主页。因为我们实现登录就是在Session中记录了用户信息。所以注销功能,就是在Session中移除用户信息。代码:删除Session中的用户信息,跳转登录页面。接前篇,实现了登录功能之后,实现注销功能。原创 2023-07-27 11:13:16 · 492 阅读 · 0 评论 -
JavaWeb 项目实现(一) 登录功能
再在业务层使用UserServiceImpl类调用UserDaoIml类中的获取登录用户的方法:这里其实就是在UserDaoIml类上又封装了一层,因为这一层也会用到BaseDao类中的方法,servlet中不应该处理这类代码(不是servlet做不了,而是出于功能划分的目的)因为登录要用到的是User类,所以再实现一个UserDaoIml类,专门用来获取User对象。最底层是访问数据的基础Dao类,这个类可以被用来访问数据库中的所有类。最后再在web.xml中配置好servlet就可以了。原创 2023-07-22 14:32:03 · 870 阅读 · 0 评论 -
JDBC 事务
事务是指在Java应用程序中使用JDBC API对数据库进行操作时,通过事务管理机制来保证一组操作的原子性、一致性、隔离性和持久性。JDBC(Java Database Connectivity)是Java语言中访问数据库的标准API,提供了一组访问关系型数据库的接口,使得Java应用程序能够通过标准的方式来连接和操作各种关系型数据库。最大的优点就是为java提供了一套统一的接口来访问不同的数据库,这样就不用针对不同的数据库编写不同的代码了。原创 2023-07-20 13:57:24 · 123 阅读 · 0 评论 -
MySQL 驱动报错 jdbc.Driver
这个错误就是字面意思,`com.mysql.cj.jdbc.Driver'代替了旧的 `com.mysql.jdbc.Driver',然后这个驱动是自动加载的,所以 Class.forName("com.mysql.jdbc.Driver");去掉了jdbc后的一个冒号,上面那行是5.x版本的写法,下面这行才是8.x版本的写法。原创 2023-07-20 10:59:27 · 866 阅读 · 0 评论 -
ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)
这是因为MySQL服务器没有启动,我打开任务管理器看了一下,确实没有启动,而且我在任务管理器右键启动MySQL,很快又会变成已停止。2.再次执行net start mysql和mysql -u root -p。1.删除之前自己创建的my.ini。这次就成功进入mysql了。原创 2023-07-19 15:22:24 · 356 阅读 · 0 评论 -
JavaWeb Filter应用
主页有一个注销功能,因为一个session一般直到关闭浏览器才会结束,所以要注销登录信息,回到未登录的状态。若登录成功,则在session设置属性表明用户已登录,且跳转至主页(sys/success.jsp)最后再加上Filter:若用户处于未登录状态,那么原本访问sys/*的请求就会直接重定向到错误页面。之前的博客提到了Filter可以在访问页面前对请求和响应进行拦截和处理。所以今天实现一个权限控制的应用:只有成功登录的用户可以访问主页。1.Filter应用。原创 2023-07-17 12:08:21 · 115 阅读 · 0 评论 -
JavaWeb Listener 监听器
当Web应用程序启动时,容器会创建一个HttpSession对象,当用户关闭浏览器或Session过期时,容器会销毁该对象。监听器(Listener)是一种特殊的Java类,它可以用来监听Web应用程序中的事件,例如ServletContext、HttpSession和ServletRequest等的创建、销毁、修改等事件。通过监听器,我们可以在特定的事件发生时执行一些自定义的代码,以实现对应用程序的控制和管理。当我关闭其中一个浏览器后,还是显示有两个人在线。因为这里计算的是会话的个数。原创 2023-07-13 15:15:45 · 179 阅读 · 0 评论 -
JavaWeb Filter
Filter是一种可用于拦截请求和响应的技术,它能够在请求到达Servlet之前或者响应返回给客户端之前对请求和响应进行一些处理操作。方法中,将请求的编码设置为中文的编码,然后将请求和响应传递给FilterChain继续处理。Filter可以用于实现诸如身份验证、授权、日志记录、字符编码转换和性能监测等功能。这样请求和响应的编码已经被设置为指定的编码,从而避免了中文乱码等问题。表示所有路径在servlet下的请求,都会经过该过滤器,被过滤。2)配置web.xml。1)实现Fliter。原创 2023-07-13 12:15:47 · 92 阅读 · 0 评论 -
MVC三层架构
MVC(Model-View-Controller)是一种常见的软件设计模式,用于组织和管理应用程序的代码和逻辑。- 模型通常包括数据模型(用于表示数据结构)、业务逻辑(用于处理数据操作和业务规则)以及数据访问层(用于与数据库或其他数据源进行交互)。需要注意的是,MVC是一种设计模式,可以在不同的编程语言和框架中实现。- 控制器接收用户的请求,根据请求调用适当的模型操作,并更新相应的视图来显示结果。- 控制器是模型和视图之间的中介,负责处理用户的输入、协调模型和视图之间的交互。原创 2023-07-12 14:49:26 · 2043 阅读 · 2 评论 -
JavaBean
JavaBean的主要目的是提供一种标准的方式来封装数据,并且可以通过访问器和修改器方法来控制对数据的访问。首先创建一个JavaBean类,遵循JavaBean规范,包含私有属性和公共的访问器和修改器方法。在JSP中使用JavaBean,JavaBean一般被看作一个对应数据库表的实体类。JavaBean是一种符合特定规范的Java类。接着在JSP使用JavaBean,有两种方法。原创 2023-07-12 11:23:14 · 93 阅读 · 0 评论 -
JavaWeb JSP标签 JSTL标签
JSTL(JSP Standard Tag Library)是一个标准的JSP标签库,为JSP页面提供了一组可重用的标签和函数,用于简化和增强JSP页面的开发。在JSTL中也不能直接使用内的java代码定义的变量,而是要把变量放到page或request或session或application中。JSTL标签的出现为了弥补HTML的不足,这些标签的功能和java代码一样。:JSP指令标签,用于指定页面的属性和配置信息,例如导入Java类、设置页面的编码等。原创 2023-07-10 13:17:23 · 480 阅读 · 0 评论 -
JavaWeb JSP 内置对象
从上图的JSP代码,我们可以看到pageContext,request,session,application都可以设置属性。application:保存的属性在服务器中有效,也就是打开服务器到关闭服务器的过程中有效。session:保存的属性仅在当前会话有效,也就是打开浏览器到关闭浏览器的过程中有效。一个用户可以多次使用这些数据。request:保存的属性仅在当前请求有效,如果进行请求转发,可以带去下一个页面。pageContext:保存的属性仅在当前页面有效,离开当前页面就无法再读取了。原创 2023-07-10 10:52:01 · 151 阅读 · 0 评论 -
JavaWeb JSP基础语法和指令
include指令:用于在JSP页面中包含其他的JSP页面或静态资源。--html annotate-->会显示在客户端的源代码中。JSP是Java技术的一种应用,对Java所有的语法都支持,除此之外,还有一些扩充的语法。page指令:用于设置整个JSP页面的属性和配置。- `pageEncoding`:设置JSP页面的字符编码。- `contentType`:设置响应的内容类型。- `errorPage`:指定错误处理页面。- `import`:引入Java类或包。2) 执行java代码。原创 2023-07-09 17:36:26 · 240 阅读 · 0 评论 -
JavaWeb JSP
它是在Java Servlet技术的基础上发展而来的,通过在HTML页面中嵌入Java代码,可以实现动态内容的生成和交互。用户通过浏览器访问jsp页面,服务器首先找到.jsp文件,然后将其转换成一个.java文件(这个java中的类继承了HttpJspBase类),再编译成.class。,这个类和我们之前学习的Servlet的类是一样的,只是我们没有直接写这个类,是先写了jsp,然后自动转换的。service中也包括了自动转换的代码:将jsp中的内容转换成了java中的输出方法。原创 2023-07-08 12:01:17 · 450 阅读 · 0 评论 -
JavaWeb Session
会话可以在客户端和服务器之间建立,并且在一段时间内保持活动状态,以便在多个请求和响应之间共享信息。Cookie通过在HTTP请求头中传递,将数据存储在客户端的Cookie文件中。在JavaWeb开发中,Session是一种用于跟踪用户状态和在多个请求之间共享数据的机制。性能开销:由于Session是存储在服务器端,因此在高并发环境下,大量的Session对象可能会占用服务器的内存资源。Session和Cookie是在Web开发中用于跟踪用户状态和在多个请求之间共享数据的机制,但它们有一些关键的区别。原创 2023-07-07 12:17:03 · 246 阅读 · 0 评论 -
JavaWeb Cookie
需要注意的是,由于Cookie是存储在用户的浏览器中的,因此可能存在一些安全风险,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。- Cookie可以设置过期时间,可以是会话级别的(浏览器关闭后失效)或持久性的(在指定的过期时间之后失效)。如果想删除某个Cookie,可以new一个同名Cookie,设置有效时间为0,这样会直接覆盖原来的Cookie,达到了删除的目的。- 每个Cookie都与特定的域名和路径关联,只有在相同域名和路径下的请求中才会发送相应的Cookie。每次更新上次访问时间。原创 2023-07-06 21:11:38 · 271 阅读 · 0 评论 -
JavaWeb HttpServletRequest
请求转发可以携带请求参数和属性,并且共享同一个HttpServletRequest对象和HttpServletResponse对象,而重定向会创建新的HttpServletRequest对象和HttpServletResponse对象,请求参数和属性不会被共享。- 请求转发是直接将请求转发给目标资源处理,而重定向是通过浏览器发送新的请求到指定URL来间接地将请求转发给目标资源处理。它提供了访问HTTP请求的各种信息和功能,包括请求方法、请求URL、请求头、请求参数、请求体等。原创 2023-07-05 17:52:12 · 2124 阅读 · 0 评论 -
JavaWeb HttpServletResponse
当web服务器收到来自浏览器的请求后,针对这个请求,会自动创建一个代表请求的HttpServletRequest对象和一个代表响应的HttpServletResponse对象。这样在浏览器中输入地址后,就会自动重定向到新的地址,且浏览器地址栏中的地址改变了。(这就是重定向和转发的区别,转发的地址栏不会发生变化,因为浏览器始终只与原url发生通信)//注意地址不是/img二是默认路径后的路径。//输出的数据将以字节流的形式发送到客户端。//输出的数据将以字符流的形式发送到客户端。获取要下载的资源的绝对路径。原创 2023-07-05 11:38:55 · 2703 阅读 · 0 评论 -
ServletContext
相当于是一个ServletContext对应多个Servlet,第一个Servlet在ServletContext中保存了数据,第二个Servlet可以从ServletContext中读取。请求转发就是当前Servlet将请求转发给另一个Servlet,体现在浏览器中就是会显示另一个Servlet的内容,但是浏览器的地址栏显示的路径不变,还是原先的Servlet的路径。ServletContext是Java Web应用程序中的一个接口,它提供了与Web应用程序相关的信息和方法。原创 2023-06-28 09:48:42 · 524 阅读 · 0 评论 -
Servlet原理 Servlet mapping
接着定义了一个Servlet映射,将Servlet "hello" 映射到URL模式"/hello"。这样,当用户在浏览器中输入"http://localhost:8080/hello"时,Web服务器就会将请求传递给名为"hello"的Servlet进行处理。这段XML代码是一个Servlet的配置,首先定义了一个名为"hello"的Servlet,它的类是"com.study.servlet.HelloServlet"。固有路径的映射优先级最高,找不到固有路径映射才会去找通用映射路径。原创 2023-06-26 11:03:42 · 1124 阅读 · 0 评论 -
JavaWeb 第一个Servlet程序
Servlet是Java EE(Enterprise Edition)规范的一部分,它提供了一种标准的API,以便开发人员可以编写可移植的Web应用程序。我们要通过浏览器访问我们上面写的Servlet程序,浏览器与web服务器连接,所以可以在web服务器里注册们上面写的Servlet。狭义的Servlet是SUN公司提供的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。在网址后加上刚才映射时配置的名字:/hello,可以得到servlet程序的结果。3)编写Servlet映射。原创 2023-06-25 13:57:14 · 318 阅读 · 0 评论 -
HTTP 超文本传输协议
HTTP协议的基本工作方式是,客户端向服务器发送一个HTTP请求,请求中包含请求的方法、URL、HTTP版本号、请求头部和请求正文等信息。服务器接收到请求后,根据请求的URL等信息进行处理,并返回一个HTTP响应,响应中包含HTTP版本号、状态码、响应头部和响应正文等信息。是一种安全的HTTP协议,它通过使用SSL/TLS协议对HTTP协议传输的数据进行加密和解密,以保证数据传输的安全性。是一种用于传输超媒体文档(例如HTML文件,可以包含文本,视频,图片,音乐,地图定位)的应用层协议,是Web的基础。原创 2023-06-23 13:43:40 · 1359 阅读 · 0 评论 -
JavaWeb Tomcat
上文说到了web网站存放在了webapps这个文件夹中,所以在该目录下,新建一个文件夹Freya(代表这个新网站的文件夹),并且复制webapps\ROOT\WEB-INF\web.xml文件。1)系统会先在电脑的C:\Windows\System32\drivers\etc\hosts这个文件中,检查是否有该域名的映射,若有,则直接返回对应的IP地址。而8080是Tomcat的端口号,这个可以在config/server.xml中修改,比如改成8082,然后访问的时候输入localhost:8082。原创 2023-06-23 11:06:47 · 870 阅读 · 0 评论 -
javascript 数组详解
1)slice 返回一个新数组,内容是数组的截取部分,类似substring。5) concat():连接两个数组,返回一个新数组。6)join 使用指定字符拼接数组,打印拼接数组形成的字符串。在头部 unshift() shift()3) sort():默认字典序升序排序。4) reverse(): 反转数组。在尾部:push() pop()不能在数组中间进行插入和删除。原创 2023-04-16 12:26:30 · 216 阅读 · 0 评论 -
41/365 javascript 严格检查模式 字符串
但这样会造成很多问题,一是变量不声明就使用,二是这样使用的变量会是全局变量,造成重名问题。注意:'use strict'必须放在第一行,不然无法检查到它之前的代码。因为js语法的随意性,可以直接使用变量(没有声明),也不会报错。多行字符串,除了使用\n,还可以用·这个符号(tab键上方)为此,js在ES6加入了严格检查模式。这样直接使用未声明的变量就会报错。所以还是应该先声明,再使用。字符串具有不可变性,不能修改。且定义的变量会是局部变量。用双引号,或者单引号表示。原创 2023-02-19 11:08:44 · 469 阅读 · 0 评论 -
40/365 javascript 数据类型
number类型:整数,小数都属于这一类,不具体区分字符串:'hello', "hello"布尔类型:true,false逻辑运算符: && || !比较运算符: ==: 类型不一致,值一致,判断为true eg: 1=='1' ===:类型一致,值一致,才会判断为trueNaN与任何数值都不相等,包括自己,判断是否是 NaN,可以用isNaN()方法原创 2023-02-17 12:00:38 · 289 阅读 · 0 评论 -
39/365 javascript 入门
点击调试器,可以看到源代码,可以设置断点,然后刷新页面,对代码进行调试。在浏览器页面上右键检查,点击控制台console,可以打印变量的值。1.在.html文件中引入javascript。if while 语句用法与java一致。定义变量:不区分具体类型,都用var。3.如何调试javascript代码。外部引入:引入一个js文件。/***/表示多行注释。原创 2023-02-10 16:00:44 · 93 阅读 · 0 评论