JSP学习
jsp是什么?
Java server pages。 Java 服务器端页面。 是在服务器端执行的
实现了在 Java 当中使用HTML 标签
技术特点:
Java平台, 安全性高, 适合开发大型的, 企业级的 Web应用程序
基础语法
jsp指令
page指令
通常位于jsp页面的顶端, 同一个页面可以有多个page 指令
<%@ page language="java" contentType="text/html; charset=utf-8"
%>
属性
作用
language
设置jsp执行的语言
import
当前页面引入的库文件
contentType
设置页面的编码格式
**pageEncoding=”UTF-8”**的作用是设置JSP编译成Servlet时使用的编码。
**contentType=”text/html;charset=UTF-8”**的作用是指定服务器响应给浏览器的编码。
表示的是HTML标签的编码 - [request](https://so.csdn.net/so/search?q=request&spm=1001.2101.3001.7020).setCharacterEncoding(“UTF-8”)的作用是设置对客户端请求和数据库取值时的编码 ,可以解决post请求的中文乱码问题 - 如何解决get请求传参的中文乱码问题
修改tomcat配置的server.xml的URLEncoding
include指令
将一个外部文件嵌入到当前的 JSP 文件中, 同时解析这个页面的 JSP 语句
taglib指令
使用标签库定义新的自定义标签, 在JSP页面中启用定制行为
jsp注释
html 注释:
//客户端可见
jsp脚本注释:
<%-- html注释 --%> //客户端不可见
JSP脚本注释:
<%
// 单行注释
/* 多行注释 */
%>
jsp脚本
就是标签内置执行代码
语法:
<% Java代码 %>
jsp声明
在JSP页面中定义变量或者方法
语法:
<%! Java代码 %>
例子:
<%!
String s = '张三'; // 声明了一个字符串变量
int add(int x,int y) { // 声明了一个返回整形的函数
return x + y;
}
%>
jsp表达式
在jsp页面中执行的表达式
语法:
<% =表达式 %> // 表达式不以分号结束
jsp页面生命周期
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fLURrhP4-1647329905250)(JSP%E5%AD%A6%E4%B9%A0.assets/1646197348574.png)]
jsp内置对象
jsp内置对象是Web 容器创建的一组对象, 不适用new关键字就可以使用内置对象。
缓冲区buffer
就是内存的一块区域用来保存临时数据
out对象
out对象是JspWriter类的实例,是向客户端输出内容的常用对象
常用方法如下:
void println() 向客户端打印字符串
void clear() 清除缓冲区内容,如果在 flush 之后调用会抛出异常
void clearBuffer() 清除缓冲区内容,如果在flush之后调用不会抛出异常
void flush() 将缓冲区内容输出到客户端,然后刷新缓冲区
int getBufferSize() 返回缓冲区以字节数的大小, 如果不设缓冲区则为0
int getRemaining() 返回缓冲区还剩余多少可用
boolean isAutoFlush() 返回缓冲区满时, 是自动清空还是抛出异常
void close() 关闭输出流
表单提交方式
表格table
tr 是一行
colspan=”2“ 表示单元格横占几格
get
以明文的方式通过url提交数据, 数据在url中可以看到。
提交的数据最多不超过2kb。
安全性较低但效率比post方式高
post
将用户提交的信息封装在request header中。适合提交数据量大, 安全性高的用户数据。
request对象
客户端的请求信息被封装在request 对象中, 通过它才能了解到客户的需求, 然后做出响应。 它是HttpServletRequest类的实例。 request对象具有请求域, 即完成客户端的请求之前,该对象一直有效。就是每一次请求都是一个request实例。常用方法如下:
String getParameter(String name) 返回name 项的值
String[] getParameterValues(String name) 返回所有name项的数组
void setAttribute(String,Object) 储存此请求中得属性
object getAttribute(String name) 返回指定属性得属性值
String getContentType() 得到请求体的MIME类型
String getProtocol() 返回请求用的协议类型即版本号
String getServerName() 返回接受请求的服务器主机名
int getServerPort() 返回服务器接收此请求所用的端口号
String getCharacterEncoding() 返回字符编码方式
void setCharacterEncoding() 设置请求的字符编码方式
int getContentLength() 返回请求体的长度,字节
String getRemoveAddr() 返回发送此请求的客户端的IP地址
String getRealPath(String path) 返回一条虚拟路径的真实路径
String getContextPath() 返回上文路径
getRequestDispatcher().forward(req, resp) 重定向
response对象
response对象包含了响应客户请求的有关信息。特使HttpServletResponse类的实例。response对象具有页面作用域。即每一个页面都是一个实例(response对象)
常用方法:
String getCharacterEcoding() 返回响应用的是何种字符编码
void setContentType(String type) 设置响应的MIME 类型
printWriter getWriter() 返回可以向客户端输出字符的一个对象
(与内置out对象的区别: 它的输出总是提前于out对象的输出)
sendRedirect(java.lang.String location) 重新定向客户端的需求
总结:每个页面都有自己的request 和response ,request 封装本页面被请求的信息,response 封装响应给别人的信息。
请求转发与请求重定向
请求重定向:客户端行为, response.sendRedirect(“url”), 从本质上来讲等同于两次请求,前一次的请求对象不会保存,地址栏的url地址会改变。
请求转发: 服务器行为, request.getRequestDispatcher(“url”).forward(request, response); 是一次请求, 转发后请求对象会保存,地址栏的url地址不会改变。
问:为什么有flush不能请求重定向?
response页面一旦调用一个flush()方法后,代表该response已经提交, 执行完毕,不能再使用
而请求重定向需要这个response 回复客户端。但是这个response 已经不能用了,所以会报错。
a相当于一次请求请求重定向,两次请求不属于一个request。两次回复也不属于一个response。
说明同一个网页有且仅有一个相同的request实例,一个response实例。这次requst 的生命周期等到response输出到前端时才算结束。
使用请求转发是共享request 和 response
session
什么是session?
session 表示客户端与服务器的一次会话。
只要有任何页面存在都会被视为是在同一个会话里面。
session对象
session 对象是一个 JSP 内置对象
session 对象在第一个JSP 页面被装载时自动创建,完成会话期管理
session 对象时HttpSession 类的实例
常用方法:
long getCreationTime(): 返回session 创建时间,毫秒级
public String getId(): 返回session 创建时JSP 引擎为它设的唯一的 ID 号
public Object setAttribute(String name, Object value): 使用指定名称将对象绑定到此对话
public Object getAttribute(String name): 返回与此会话中的指定名称绑定在一起的对象, 如果没有对象绑定在该名称下, 则返回null
String[] getValueNames(): 返回一个数组,包含此session 种所有的属性
int getMaxInactiveInterval(): 返回session过期的时间
int setMaxInactiveInterval(): 设置session的过期时间
session的生命周期
1.创建
当客户端第一次访问某个jsp 或者Servlet 时候,服务器会为当前会话创建一个SessionId,每次客户端向服务端发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验
2.活动
某次会话当中通过超链接打开新页面属于同义词会话
只要当前会话页面没有全部关闭, 重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。
除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet 将会创建新的会话。
注意:关闭以后,其实原有会话还存在, 只是这个旧的SessionId还存在于服务端,只不过再也没有客户端携带它然后交予服务端校验。
3.销毁
Session 的销毁只有三种方式:
调用了session.invalidate() 方法
Session 过期
服务器重新启动
application 对象
application 对象实现了用户间数据的共享,可存放全局变量
application 开始于服务器的启动, 终止于服务器的关闭
在任何地方对application 对象属性的操作,都将影响到其它用户对此的访问
application 对象时ServletContext类的实例
常用方法:
public void setAttribute(String name, Object value) 使用指定名称将对象绑定到此会话
public Object getAttribute(String name) 返回此会话中的指定名称绑定在一起的对象
Enumeration getAttributeNames 返回所有可用属性名的枚举
String getServerInfo() 返回JSP(servlet)引擎名及版本号
page 对象
page 对象就是指当前JSP 页面本身,有点像类中的this 指针
page 对象是jaga.lang.Object 类的实例
常用方法:
class getClass() 返回此Object的类
int hashCode() 返回此Object的hash 码
boolean equals(Object obj) 判断此Object是否与指定的Object 对象相等
void copy(Object obj) 把此Object拷贝到指定的Object 对象中
Object clone() 克隆此Object对象
String toString() 把此Object对象转换为String类的对象
void notify 唤醒一个等待的线程
void notifyAll() 唤醒所有的等待线程
void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
void wait() 使一个线程处于等待直到被唤醒
pageContext 对象
pageContext 对象提供了对JSP页面内所有的对象及名字空间的访问
pageContext 对象可以访问到本页所在的session,也可以取本页面所在的application的某一属性值
pageContext 对象相当于页面中所有功能的集大成者
pageContext对象是 pageContext类的实例
常用方法:
JSPWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession() 返回当前页面中的HttpSession对象(session)
Object getPage() 返回当前页中的page
ServletRequest getRequest() 返回当前页的request
ServlerResponse getResponse() 返回当前页的response
void setAttribute(String name,Object attribute)设置属性和属性值
Object getAttribute(String name,int scope) 在指定范围内取属性的值
int getAttributeScope(String name) 返回某属性的作用范围
void forward(String relativeUrlPath) 使当前页面重导到另一页面
void include(String relativeUrlPath) 在当前位置包含另一文件,包括HTML内容都会显示
exception 对象
exception 对象是一个异常对象,当一个页面运行过程中发生了异常,就产生了该对象。
它是java.lang.Throwable的对象。
常用方法:
String getMessage()返回描述异常的消息
String toString() 返回关于异常的简短描述消息
void printStackTrace() 显示异常及其栈轨迹
Throwable FillInStackThrce() 重写异常的执行栈轨迹
注意:处理异常时,需要在头文件中指定处理异常的页面。而在处理异常页面的头文件中需要声明isErrorPage为true. 具体代码如下
异常页面:
errorPage="doexception.jsp"
处理异常页面:
isErrorPage="true"
Javabean
Javabeans 就是符合某种特定的规范的Java 类。
使用Javabeans 的好处是解决了代码重复编写,减少代码冗余,功能区分明确, 提高了代码的维护性。
设计原则
公有类
无参的公有构造方法
属性私有
getter 和 setter 方法
Jsp动作元素
动作元素为请求处理阶段提供信息。动作元素遵循 XML 元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。
在jsp页面中如何使用Javabeans
Javabean 的四个作用域范围
使用useBeans的scope属性可以用来指定javabean 的作用范围
page 在当前页面有效
request 可以通过HttpRequest.getAttribute() 方法取得JavaBean 对象
session 可以通过HttpSession.getAttribute() 方法取得JavaBean 对象
application 可以通过 application.getAttribute() 方法取得JavaBean 对象
问题:useBean 的意思是拿到一个class类的实例,如果没有,则创建一个
https://blog.csdn.net/allway2/article/details/111018118
Model1 简介
JavaBean 的出现可以使jsp 页面中使用JavaBean 封装的数据或者调用JavaBean 的业务逻辑代码, 这样大大提升了程序的可维护性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BAbKGFmC-1647329905251)(JSP%E5%AD%A6%E4%B9%A0.assets/1646705232203.png)]
jsp状态管理
http协议的无状态性
就是指浏览器二次发送请求时,服务器并不知道它就是第一次发送请求的那个浏览器。
保存用户状态的两大机制
session
cookie 中文名称为 ‘小甜饼’, 是web 服务器保存在客户端的一系列[数组]文本信息。
作用:
对特定对象的追踪
保存用户网页的浏览记录与习惯
简化登录
安全风险: 容易泄露用户信息
在jsp中创建与使用Cookie 创建cookie对象
Cookie newCookie = new Cookie(String key, Object value);
写入cookie
response.addCookie(newCookie);
读取Cookie 对象
Cookie[] cookies = request.getCookies();
常用方法:
void setMaxAge(int expiry) 设置cookie 的有效期,以秒为单位
void setValue(String value) 在cookie 创建后,对cookie进行赋值
String getName() 获取cookie 的名称
String getValue() 获取cookie 的值
int getMaxAge() 获取cookie 的有效时间,以秒为单位
session 和 cookie的对比
session
cookie
在服务器端保存用户信息
在客户端保存用户信息
保存的是Object类型
保存的是String类型
随会话的结束而将其存储的数据销毁
cookie可以长期(生存期限)保存在客户端
保存重要的信息
保存用户不重要用户信息
指令与动作
include 指令
语法:<%@ include file="URL">
include 动作
语法:
page: 要包含的页面
flush: 被包含的页面是否从缓冲区读取
include指令
jsp:include动作
语法格式
<%@ include file="URL">
等同于: request.getRequestDispatcher("/url").forward(request, response);
param 动作
语法:
常常与
一起使用,作为其的子标签
附件:
案例:
你可能感兴趣的:(Java,eclipse,java,jsp)
移动端城市区县二级联动选择功能实现包
good2know
本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery
深入解析JVM工作原理:从字节码到机器指令的全过程
一、JVM概述Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。JVM的主要职责:加载:读取.class文件并验证其正确性存储:管理内存分配和垃圾回收执行:解释或编译字节码为机器指令安全:提供沙箱环境限制恶意代码二、JVM架构详解JVM由三个主要子系统组成:1.类加载子系统类加载过程分为
JVM 内存模型深度解析:原子性、可见性与有序性的实现
练习时长两年半的程序员小胡
JVM 深度剖析:从面试考点到生产实践 jvm java 内存模型
在了解了JVM的基础架构和类加载机制后,我们需要进一步探索Java程序在多线程环境下的内存交互规则。JVM内存模型(JavaMemoryModel,JMM)定义了线程和主内存之间的抽象关系,它通过规范共享变量的访问方式,解决了多线程并发时的数据一致性问题。本文将从内存模型的核心目标出发,详解原子性、可见性、有序性的实现机制,以及volatile、synchronized等关键字在其中的作用。一、J
Java | 多线程经典问题 - 售票
Ada54
一、售票需求1)同一个票池2)多个窗口卖票,不能出售同一张票二、售票问题代码实现(线程与进程小总结,请戳:Java|线程和进程,创建线程)step1:定义SaleWindow类实现Runnable接口,覆盖run方法step2:实例化SaleWindow对象,创建Thread对象,将SaleWindow作为参数传给Thread类的构造函数,然后通过Thread.start()方法启动线程step3
SpringMVC的执行流程
1、什么是MVCMVC是一种设计模式。MVC的原理图如下所示M-Model模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View视图(做界面的展示jsp,html……)C-Controller控制器(接收请求—>调用模型—>根据结果派发页面2、SpringMVC是什么SpringMVC是一个MVC的开源框架,SpringMVC=Struts2+Spring,
JAVA接口机结构解析
秃狼
SpringBoot 八股文 Java java 学习
什么是接口机在Java项目中,接口机通常指用于与外部系统进行数据交互的中间层,负责处理请求和响应的转换、协议适配、数据格式转换等任务。接口机的结构我们的接口机的结构分为两个大部分,外部接口机和内部接口机,在业务的调度上也是通过mq来实现的,只要的目的就是为了解耦合和做差异化。在接口机中主要的方法就是定时任务,消息的发送和消费,其他平台调用接口机只能提供外部接口机的方法进行调用,外部接口机可以提供消
最新阿里四面面试真题46道:面试技巧+核心问题+面试心得
风平浪静如码
前言做技术的有一种资历,叫做通过了阿里的面试。这些阿里Java相关问题,都是之前通过不断优秀人才的铺垫总结的,先自己弄懂了再去阿里面试,不然就是去丢脸,被虐。希望对大家帮助,祝面试成功,有个更好的职业规划。一,阿里常见技术面1、微信红包怎么实现。2、海量数据分析。3、测试职位问的线程安全和非线程安全。4、HTTP2.0、thrift。5、面试电话沟通可能先让自我介绍。6、分布式事务一致性。7、ni
图论算法经典题目解析:DFS、BFS与拓扑排序实战
周童學
数据结构与算法 深度优先 算法 图论
图论算法经典题目解析:DFS、BFS与拓扑排序实战图论问题是算法面试中的高频考点,本博客将通过四道LeetCode经典题目(均来自"Top100Liked"题库),深入讲解图论的核心算法思想和实现技巧。涵盖DFS、BFS、拓扑排序和前缀树等知识点,每道题配有Java实现和易错点分析。1.岛屿数量(DFS遍历)问题描述给定一个由'1'(陆地)和'0'(水)组成的二维网格,计算岛屿的数量。岛屿由水平或
【异常】使用 LiteFlow 框架时,提示错误ChainDuplicateException: [chain name duplicate] chainName=categoryChallenge
本本本添哥
002 - 进阶开发能力 java
一、报错内容Causedby:com.yomahub.liteflow.exception.ChainDuplicateException:[chainnameduplicate]chainName=categoryChallengeatcom.yomahub.liteflow.parser.helper.ParserHelper.lambda$null$0(ParserHelper.java:1
Java并发核心:线程池使用技巧与最佳实践! | 多线程篇(五)
bug菌¹
Java实战(进阶版) java Java零基础入门 Java并发 线程池 多线程篇
本文收录于「Java进阶实战」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!环境说明:Windows10+IntelliJIDEA2021.3.2+Jdk1.8本文目录前言摘要正文何为线程池?为什么需要线程池?线程池的好处线程池使用场景如何创建线程池?线程池的常见配置源码解析案例分享案例代码演示案例运行
Java 队列
tryxr
java 开发语言 队列
队列一般用什么哪种结构实现队列的特性数据入队列时一定是从尾部插入吗数据出队列时一定是从头部删除吗队列的基本运算有什么队列支持随机访问吗队列的英文表示什么是队列队列从哪进、从哪出队列的进出顺序队列是用哪种结构实现的Queue和Deque有什么区别Queue接口的方法Queue中的add与offer的区别offer、poll、peek的模拟实现如何利用链表实现队列如何利用顺序表实现队列什么叫做双端队列
JVM 内存分配与回收策略:从对象创建到内存释放的全流程
在JVM的运行机制中,内存分配与回收策略是连接对象生命周期与垃圾收集器的桥梁。它决定了对象在堆内存中的创建位置、存活过程中的区域迁移,以及最终被回收的时机。合理的内存分配策略能减少GC频率、降低停顿时间,是优化Java应用性能的核心环节。本文将系统解析JVM的内存分配规则、对象晋升机制,以及实战中的内存优化技巧。一、对象优先在Eden区分配:新生代的“临时缓冲区”大多数情况下,Java对象在新生代
代码随想录算法训练营第三十五天
01背包问题二维题目链接01背包问题二维题解importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intM=sc.nextInt();intN=sc.nextInt();int[]space=newint[M];int[]value=new
深入理解 Tomcat Wrapper 原理
北漂老男人
Tomcat tomcat java
深入理解TomcatWrapper原理一、引言在Tomcat的分层容器架构中,Wrapper作为最底层的容器,专门负责管理单个Servlet的生命周期及请求分发。每一个Servlet(包括JSP、Filter等)都对应一个Wrapper。Wrapper是Servlet规范与Tomcat容器实现之间的桥梁,直接关系到请求的分发效率、Servlet的加载与重用、安全隔离等。本文将系统剖析Wrapper
微信公众号回调java_处理微信公众号消息回调
weixin_39607620
微信公众号回调java
1、背景在上一节中,咱们知道如何接入微信公众号,可是以后公众号会与咱们进行交互,那么微信公众号如何通知到咱们本身的服务器呢?咱们知道咱们接入的时候提供的url是GET/mp/entry,那么公众号以后产生的事件将会以POST/mp/entry发送到咱们本身的服务器上。html2、代码实现,此处仍是使用weixin-java-mp这个框架实现一、引入weixin-java-mpcom.github.
学C++的五大惊人好处
为什么要学c++学c++有什么用学习c++的好处有1.中考可以加分2.高考可能直接录取3.就业广且工资高4.在未来30--50年c++一定是一个很受欢迎的职业5.c++成功的例子deepsick等AI智能C++语言兼备编程效率和编译运行效率的语言C++语言是C语言功能增强版,在c语言的基础上添加了面向对象编程和泛型编程的支持既继承了C语言高效,简洁,快速和可移植的传统,又具备类似Java、Go等其
Java8 Stream流的sorted()的排序【正序、倒序、多字段排序】
Tony666688888
java windows 开发语言
针对集合排序,java8可以用Stream流的sorted()进行排序。示例Bean以下我们会使用这个Bean来做示例。publicclassOrder{privateStringweight;privateDoubleprice;privateStringdateStr;//忽略getter、setter、构造方法、toString}字段排序首先是比较器Comparator,形式如下:Compa
用代码生成艺术字:设计个性化海报的秘密
本文围绕“用代码生成艺术字:设计个性化海报的秘密”展开,先概述代码生成艺术字在海报设计中的独特价值,接着介绍常用的代码工具(如HTML、CSS、JavaScript等),详细阐述从构思到实现的完整流程,包括字体样式设计、动态效果添加等,还分享了提升艺术字质感的技巧及实际案例。最后总结代码生成艺术字的优势,为设计师提供打造个性化海报的实用指南,助力提升海报设计的独特性与吸引力,符合搜索引擎SEO标准
java实习生40多天有感
别拿爱情当饭吃
从5月15日开始,我开始第一步步入社会,我今年大三,在一家上市互联网公司做一名实习生,主要做java后端开发。开始的时候,觉得公司的环境挺不错的,不过因为公司在CBD,所以隔壁的午饭和晚饭都要20+RMB,而且还吃不饱,这让我感觉挺郁闷的。一到下午,我就会犯困(因为饿)。因此,我又不得不买一些干粮在公司屯着。关于技术,有一个比较大的项目在需求调研当中,我们做实习生,就是辅助项目经理,测试功能,并且
大学生入门:初识方法及其易踩坑的点
在java学习过程中,我们不难发现有很多重复使用的功能代码块,每次使用如果都要重新写一遍,岂不是很麻烦,就算是“cv”大法,感觉也不是很方便,那么,有什么办法可以解决这个问题呢?方法!java中,一段可重用的,用于执行特定功能的代码块叫做方法,它可以接收参数、返回结果,并且可以被多次使用。一、方法的基本结构[修饰符]返回值类型方法名([参数列表])[throws异常类型]{//方法体}[throw
[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
这些不会的
解释:这个错误是很常见的错误,错误的提示已经很清楚了就是java的Object数组不能转换成为String[]数组,这就说明你要转换的数组它本身是Object类型的数组,但是你却非要把它转换为String类的数组,这当然是错误的。示例:[java]viewplaincopypackagecom.dada;importjava.util.ArrayList;importjava.util.List;
HikariCP调试日志深度解析:生产环境故障排查完全指南
HikariCP调试日志深度解析:生产环境故障排查完全指南更新时间:2025年7月4日|作者:资深架构师|适用版本:HikariCP5.x+|难度等级:中高级前言在生产环境中,数据库连接池往往是系统性能的关键瓶颈。HikariCP作为当前最流行的Java连接池,其调试日志包含了丰富的运行时信息,能够帮助我们快速定位和解决各种连接池相关问题。本文将深入解析HikariCP的日志体系,提供一套完整的故
大学社团管理系统(11831)
codercode2022
java spring boot spring echarts spring cloud sentinel java-rocketmq
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项目截图有需要的同学,源代码和配套文档领取,加文章最下方的名片哦!
今年校招竞争真激烈
12_05
程序员满大街,都要找不到工作了。即使人工智能满大街,我也后悔当初没学机器学习,后悔当初没学Java。C++真难找工作。难道毕了业就失业吗?好担心!
【免费下载】 Aspose for Java:解锁无水印、无限制的文档处理能力
房征劲Kendall
AsposeforJava:解锁无水印、无限制的文档处理能力【下载地址】AsposeforJava-去除水印和数量限制AsposeforJava-去除水印和数量限制Aspose是一个著名的文档处理库,专为Java应用程序设计,支持多种文档格式的操作,如Word、Excel、PDF等项目地址:https://gitcode.com/open-source-toolkit/56c82项目介绍在现代企业
微服务日志追踪,Skywalking接入TraceId功能
Victor刘
微服务 skywalking java
文章目录一、借助skywalking追加traceIdlogbacklog4j2效果二、让skywalking显示日志内容版本差异logback配置文件log4j2配置文件一、借助skywalking追加traceId背景:在微服务或多副本中难以观察一个链路的日志,需要通过唯一traceId标识来查找,下面介绍Skywalking-traceId在Java中的配置方法。介绍两种java日志的配置方
【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)
笙囧同学
java 前端 状态模式
核心功能设计用户管理系统用户管理是整个系统的基础,我设计了完整的用户生命周期管理:用户注册流程验证失败验证通过验证失败验证通过用户名已存在用户名可用失败成功用户访问注册页面填写注册信息前端表单验证显示错误提示提交到后端后端数据验证返回错误信息用户名唯一性检查提示用户名重复密码加密处理保存用户信息保存成功?显示系统错误注册成功跳转登录页面登录认证机制深度解析我实现了一套企业级的多层次安全认证机制:认
Java:数据结构-ArrayList和顺序表(2)
blammmp
java 数据结构 开发语言
一ArrayList的使用1.ArrayList的构造方法第一种(指定容量的构造方法)创建一个空的ArrayList,指定容量为initialCapacity。publicArrayList(intinitialCapacity){if(initialCapacity>0){this.elementData=newObject[initialCapacity];}elseif(initialCap
CMS垃圾回收器和G1垃圾回收器区别_g1cms垃圾回收器区别
2401_89191885
jvm
该类所有的实例都已经被回收,也就是Java堆中不存在该类的任何实例;加载该类的ClassLoader已经被回收;该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。3.常见的垃圾回收算法1、Mark-Sweep(标记-清除算法):(1)思想:标记清除算法分为两个阶段,标记阶段和清除阶段。标记阶段任务是标记出所有需要回收的对象,清除阶段就是清除被标
每日面试题15:如何解决堆溢出?
℡余晖^
每日面试题 python 开发语言
在Java应用运行过程中,"java.lang.OutOfMemoryError:Javaheapspace"是最常见的错误之一。无论是高并发的电商大促场景,还是持续运行的后台服务,堆内存溢出都可能导致服务不可用、数据丢失,甚至引发系统崩溃。本文将结合实际排查经验,系统讲解堆溢出的底层逻辑、应急处理流程及长效预防策略。一、堆溢出的本质:内存分配的"收支失衡"Java堆是JVM管理的内存区域,用于存
PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
java UI PHP android linux
╔-----------------------------------╗┆
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net .net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOP oracle mysql javaee G4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数 转换函数(核心) 数字函数 通用函数(核心) 字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
Mockito异常测试实例
bijian1013
java 单元测试 mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
GA与量子恒道统计
Bill_chen
JavaScript 浏览器 百度 Google 防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
angular.injector
boyitech
AngularJS AngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
使用Struts2.2.1配置
Chen.H
apache spring Web xml struts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
[职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
oracle连接(join)中使用using关键字
daizj
JOIN oracle sql using
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
C语言学习homework1
dcj3sjt126com
c homework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
Ehcache(02)——ehcache.xml简介
234390216
ehcache ehcache.xml 简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windows PHP unix Microsoft perl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
PO VO DAO DTO BO TO概念与区别
xp9802
java DAO 设计模式 bean 领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持