JSP & EL & JSTL
jsp
Java Server Page
从用户角度看待 ,就是是一个网页 , 从程序员角度看待 , 其实是一个java类, 它继承了servlet,所以可以直接说jsp 就是一个Servlet.
html 多数情况下用来显示静态内容 , 一成不变的。 但是有时候我们需要在网页上显示一些动态数据, 比如: 查询所有的学生信息, 根据姓名去查询具体某个学生。 这些动作都需要去查询数据库,然后在网页上显示。 html是不支持写java代码 , jsp里面可以写java代码。
怎么用JSP
指令写法
page指令
表明jsp页面中可以写java代码
其实即使说这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码
contentType="text/html; charset=UTF-8"
text/html MIMEType 这是一个文本,html网页
值可选的有true or false .
用于控制在这个jsp页面里面,能够直接使用session对象。
具体的区别是,请看翻译后的java文件 如果该值是true , 那么在代码里面会有getSession()的调用,如果是false : 那么就不会有该方法调用,也就是没有session对象了。在页面上自然也就不能使用session了。
指的是错误的页面, 值需要给错误的页面路径
上面的errorPage 用于指定错误的时候跑到哪一个页面去。 那么这个isErroPage , 就是声明某一个页面到底是不是错误的页面。
include
包含另外一个jsp的内容进来。
<%@ include file="other02.jsp"%>
把另外一个页面的所有内容拿过来一起输出。 所有的标签元素都包含进来。
taglib
<%@ taglib prefix="" uri=""%>
uri: 标签库路径
prefix : 标签库的别名
JSP 动作标签
包含指定的页面, 这里是动态包含。 也就是不把包含的页面所有元素标签全部拿过来输出,而是把它的运行结果拿过来。
前往哪一个页面。
<%
//请求转发
request.getRequestDispatcher("other02.jsp").forward(request, response);
%>
意思是: 在包含某个页面的时候,或者在跳转某个页面的时候,加入这个参数。
在other02.jsp中获取参数
收到的参数是:
<%= request.getParameter("address")%>
JSP内置对象
所谓内置对象,就是我们可以直接在jsp页面中使用这些对象。 不用创建。
pageContext
request
session
application
以上4个是作用域对象 ,
表示这些对象可以存值,他们的取值范围有限定。 setAttribute 和 getAttribute
使用作用域来存储数据
<%
pageContext.setAttribute("name", "page");
request.setAttribute("name", "request");
session.setAttribute("name", "session");
application.setAttribute("name", "application");
%>
取出四个作用域中的值
<%=pageContext.getAttribute("name")%>
<%=request.getAttribute("name")%>
<%=session.getAttribute("name")%>
<%=application.getAttribute("name")%>
作用域范围大小:
pageContext -- request --- session -- application
四个作用域的区别
pageContext 【PageContext】
作用域仅限于当前的页面。
还可以获取到其他八个内置对象。
request 【HttpServletRequest】
作用域仅限于一次请求, 只要服务器对该请求做出了响应。 这个域中存的值就没有了。
作用域限于一次会话(多次请求与响应) 当中。
application 【ServletContext】
整个工程都可以访问, 服务器关闭后就不能访问了。
out 【JspWriter】
response 【HttpServletResponse】
exception 【Throwable】
page 【Object】 —就是这个jsp翻译成的java类的实例对象
config 【ServletConfig】
EL表达式
是为了简化咱们的jsp代码,具体一点就是为了简化在jsp里面写的那些java代码。
${表达式 }
如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个作用域取。 一直把四个作用域取完都没有, 就没有显示。
如何使用
1. 取出4个作用域中存放的值。
<%
pageContext.setAttribute("name", "page");
request.setAttribute("name", "request");
session.setAttribute("name", "session");
application.setAttribute("name", "application");
%>
按普通手段取值
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>
使用EL表达式取出作用域中的值
${ pageScope.name }
${ requestScope.name }
${ sessionScope.name }
${ applicationScope.name }
如果域中所存的是数组
<%
String [] a = {"aa","bb","cc","dd"};
pageContext.setAttribute("array", a);
%>
使用EL表达式取出作用域中数组的值
${array[0] } , ${array[1] },${array[2] },${array[3] }
如果域中锁存的是集合
使用EL表达式取出作用域中集合的值
${li[0] } , ${li[1] },${li[2] },${li[3] }
-------------Map数据----------------
<%
Map map = new HashMap();
map.put("name", "zhangsna");
map.put("age",18);
map.put("address","北京..");
map.put("address.aa","深圳..");
pageContext.setAttribute("map", map);
%>
取出Map集合的值
<%
Map map = new HashMap();
map.put("name", "zhangsna");
map.put("age",18);
map.put("address","北京..");
map.put("address.aa","深圳..");
pageContext.setAttribute("map", map);
%>
使用EL表达式取出作用域中Map的值
${map.name } , ${map.age } , ${map.address } , ${map["address.aa"] }
取值细节:
从域中取值。 得先存值。 <%
//pageContext.setAttribute(“name”, “zhangsan”); session.setAttribute(“name”, “lisi…”); %>
直接指定说了,到这个作用域里面去找这个name ${ pageScope.name }
//先从page里面找,没有去request找,去session,去application ${ name }
指定从session中取值 ${ sessionScope.name }
取值方式
如果这份值是有下标的,那么直接使用[]
<%
String [] array = {"aa","bb","cc"}
session.setAttribute("array",array);
%>
${ array[1] } --> 这里array说的是attribute的name
如果没有下标, 直接使用 .的方式去取
<%
User user = new User("zhangsan",18);
session.setAttribute("u", user);
%>
${ u.name } , ${ u.age }
一般使用EL表达式,用的比较多的,都是从一个对象中取出它的属性值,比如取出某一个学生的姓名。
EL表达式 的11个内置对象。
${ 对象名.成员 }
作用域相关对象
pageScope
requestScope
sessionScope
applicationScope
头信息相关对象
参数信息相关对象
param
paramValues
cookie 全局初始化参数
initParam
JSTL
全称 : JSP Standard Tag Library jsp标准标签库
简化jsp的代码编写。 替换 <%%> 写法。 一般与EL表达式配合
怎么使用
导入jar文件到工程的WebContent/Web-Inf/lib jstl.jar standard.jar
在jsp页面上,使用taglib 指令,来引入标签库
注意: 如果想支持 EL表达式,那么引入的标签库必须选择1.1的版本,1.0的版本不支持EL表达式。
常用标签
c:set
${sessionScope.name }
c:if
判断test里面的表达式是否满足,如果满足,就执行c:if标签中的输出 , c:if 是没有else的。
年龄大于了26岁...
年龄小于了26岁...
------------------------------
定义一个变量名 flag 去接收前面表达式的值,然后存在session域中
年龄大于了26岁...
学生信息管理系统
先写 login.jsp , 并且搭配一个LoginServlet 去获取登录信息。
创建用户表, 里面只要有id , username 和 password
创建UserDao, 定义登录的方法
/**
创建UserDaoImpl , 实现刚才定义的登录方法。
public class UserDaoImpl implements UserDao {
@Override
public boolean login(String userName , String password) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1. 得到连接对象
conn = JDBCUtil.getConn();
String sql = "select * from t_user where username=? and password=?";
//2. 创建ps对象
ps = conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, password);
//3. 开始执行。
rs = ps.executeQuery();
//如果能够成功移到下一条记录,那么表明有这个用户。
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps, rs);
}
return false;
}
}
在LoginServlet里面访问UserDao, 判断登录结果。 以区分对待
创建stu_list.jsp , 让登录成功的时候跳转过去。
创建学生表 , 里面字段随意。
定义学生的Dao . StuDao
public interface StuDao {
/**
* 查询出来所有的学生信息
* @return List集合
*/
List findAll();
}
对上面定义的StuDao 做出实现 StuDaoImpl
public class StuDaoImpl implements StuDao {
@Override
public List findAll() {
List list = new ArrayList();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1. 得到连接对象
conn = JDBCUtil.getConn();
String sql = "select * from t_stu";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
//数据多了,用对象装, 对象也多了呢? 用集合装。 while(rs.next()){ //10 次 ,10个学生
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setAge(rs.getInt("age"));
stu.setName(rs.getString("name"));
stu.setGender(rs.getString("gender"));
stu.setAddress(rs.getString("address"));
list.add(stu);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps, rs);
}
return list;
}
}
在登录成功的时候,完成三件事情。
查询所有的学生
把这个所有的学生集合存储到作用域中。
跳转到stu_list.jsp
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//提交的数据有可能有中文, 怎么处理。
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
//1. 获取客户端提交的信息
String userName = request.getParameter("username");
String password = request.getParameter("password");
//2. 去访问dao , 看看是否满足登录。
UserDao dao = new UserDaoImpl();
boolean isSuccess = dao.login(userName, password);
//3. 针对dao的返回结果,做出响应
if(isSuccess){
//response.getWriter().write("登录成功.");
//1. 查询出来所有的学生信息。
StuDao stuDao = new StuDaoImpl();
List list = stuDao.findAll();
//2. 先把这个集合存到作用域中。
request.getSession().setAttribute("list", list);
//2. 重定向
response.sendRedirect("stu_list.jsp");
}else{
response.getWriter().write("用户名或者密码错误!");
}
}
在stu_list.jsp中,取出域中的集合,然后使用c标签 去遍历集合。
编号
姓名
年龄
性别
住址
操作
${stu.id }
${stu.name }
${stu.age }
${stu.gender }
${stu.address }
更新 删除
总结:
使用1.1的版本, 支持EL表达式, 1.0不支持EL表达式
拷贝jar包, 通过taglib 去引入标签库
备注:文章是整理黑马老师笔记而来
你可能感兴趣的:(Java后端开发)
java后端开发day19--学生管理系统升级
元亓亓亓
java后端开发 java 开发语言
(以下内容全部来自上述课程)1.要求及思路1.总体框架2.注册3.登录4.忘记密码2.代码1.javabeanpublicclassUser1{privateStringusername;privateStringpassword;privateStringpersonID;privateStringphoneNumber;publicUser1(){}publicUser1(Stringuser
java后端开发day17--ArrayList--集合
元亓亓亓
java后端开发 java 开发语言
(以下内容全部来自上述课程)1.集合和数组差不多,但能自动扩容。1.集合存储数据类型的特点可以存引用数据类型。可以存基本数据类型,但要变成包装类。2.集合和数组的对比1.长度数组:长度固定集合:长度可变2.存储类型数组:可以存基本数据类型和引用数据类型。集合:引用数据类型和基本数据类型—>包装类。3.定义泛型(E):限定集合中存储数据的类型ArrayListlist=newArrayListlis
Java 后端面试必备:Java 中 == 和 equals 有什么区别
刘小炮吖i
Java后端开发面试题 面试 java
欢迎并且感谢大家指出我的问题,由于本人水平有限,有些内容写的不是很全面,只是把比较实用的东西给写下来,如果有写的不对的地方,还希望各路大牛多多指教!谢谢大家!大家如果对Java后端面试题感兴趣可以关注一下面试题专栏引言在Java后端开发的面试中,“Java中==和equals有什么区别”是一个高频问题。虽然这看似基础,但其中蕴含的原理和细节,对于深入理解Java的内存管理和对象比较机制至关重要。接
Python 自动排班表格(代码分享)
趣享先生
Python案例分享专栏 python 开发语言
✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。个人主页:JavaFans的博客个人信条:不迁怒,不贰过。小知识,大智慧。当前专栏:Java案例分享专栏✨特色专栏:国学周更-心性养成之路本文内容:Python自动排班表格(代码分享) 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。文章目录前言问题描述解决步骤1
java后端开发面试常问
躲在没风的地方
java面试题 java 面试 spring
面试常问问题1spring相关(1)@Transactional失效的场景@Transactional注解默认只会回滚运行时异常(RuntimeException),如果方法中抛出了其他异常,则事务不会回滚(数据库数据仍然插入成功了)。@Transactional(rollbackFor=Exception.class)如果方法中有trycatch语句,并且抛出的异常的代码被try捕获,那么方法上
java后端开发day14--之前练习的总结和思考
元亓亓亓
java后端开发 java 开发语言
1.感受这两天学点儿新的就直接上手打代码,真的是累死个人。我唯一的感受就是,课听完了,代码也跟着打完了(是的,跟着打的,没自己打),感觉自己脑袋里乱乱的,对代码的分区啊作用啊啥的,感觉内理解的程度有点儿呼之欲出,可能和我之前专业课学习积累了点儿经验有关吧,但是听了几天课就感觉自己有点儿体系,但是要写出来,就又觉得自己实在不成火候。再往下学感觉又有点儿堆积之前的知识了,所以干脆停一天沉淀一下。好好想
Java后端开发中的数据保护:如何实现全面的数据加密
微赚淘客系统开发者
java 开发语言
Java后端开发中的数据保护:如何实现全面的数据加密大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊一聊Java后端开发中至关重要的一个话题——数据保护,尤其是数据加密。随着用户数据安全问题的日益重要,如何在系统中实现全面的数据加密成为后端开发者必须掌握的技能。在本文中,我将详细介绍对称加密、非对称加密以及哈希算法的具体实现,帮助大家在Java项目中保
java后端开发day8--学代码的经历和思路
元亓亓亓
java后端开发 java 开发语言
1.关于我刚开始接触代码1.初高中其实大一的C++并不是我第一次接触代码的时候,要说第一次可能还是在初高中,初中的时候是纯属心血来潮,小孩儿嘛,看见图像可爱的软件就下着玩,然后就发现下个了儿童编程的软件,虽然当时小,也对这个东西没什么概念,但是下都下了,而且都儿童编程了,能难道哪儿,就跟着活动脑筋划拉方块玩了。第二次接触的话,应该是高中?可能也许大概吧,高中内几个学科折磨人折磨的,然后就莫名奇妙就
FreeMaker 模板引擎的使用
My LQS
历史经验篇 开发语言 java
大家好!今天想跟大家聊聊一个在Java后端开发中非常实用的工具——FreeMarker模板引擎。它是一款简单易用、功能强大的模板引擎,不管是生成HTML页面,还是处理静态文件,都能让我们轻松搞定。接下来,我会带大家一步步了解FreeMarker的使用方法以及它的实际应用场景。什么是FreeMarker?FreeMarker是一个模板引擎,简单来说,它可以帮我们把动态数据填充到模板文件里,生成最终的
如何学习Java后端开发
写代码的大学生
学习 java 开发语言
文章目录一、Java语言基础二、数据库与持久层三、Web开发基础四、主流框架与生态五、分布式与高并发六、运维与部署七、项目实战八、持续学习与提升总结路线图学习Java后端开发需要系统性地掌握多个技术领域,从基础到进阶逐步深入。以下是一个详细的学习路线和建议,帮助你高效入门并逐步提升:一、Java语言基础核心语法数据类型、流程控制、数组、字符串等基础语法。面向对象(OOP):封装、继承、多态、抽象类
2023菜鸟物流一面.社招.Java后端开发
心向阳光的天域
java面试 java
2023菜鸟物流一面.社招.Java后端开发1.手写一个StringBuilder2.介绍分布式锁3.介绍高并发经验4.介绍项目的吞吐量5.Mysql的行级锁(1)行级锁(2)表级锁6.单一职责和接口隔离区别1.手写一个StringBuilderpublicclassMyStringBuilder{/***可变长度的字符串——字符数组*/charvalue[];/***定义数据长度*/intcou
DTO(数据传输对象)
阿乾之铭
Spring Boot spring boot java
一、DTO是什么DTO(DataTransferObject,数据传输对象)是Java后端开发中常见的设计模式之一。它的作用是在不同的层之间传输数据,特别是在网络或应用层之间进行数据交换时,提供一种简单的数据载体。DTO本质上是一个不包含业务逻辑的纯数据对象,用于打包数据,便于在系统的不同部分传递。二、DTO的主要作用减少数据暴露:DTO可以精简从后端返回给前端的数据。例如,数据库实体类中可能有许
2024金三银四必备:Java后端开发面试总结【25个技术专题】
2401_89790869
java 面试 开发语言
16、List和Map、Set的区别?17、数组和链表分别比较适合用于什么场景,为什么?18、说说ConcurrentHashMap19、Java中ArrayList和LinkedList区别?20、TreeMap(可排序)21、请用两个队列模拟堆栈结构?22、Map中的key和value可以为null?23、数据结构基础之双向链表24、HashMap的底层实现25、ConcurrentHashM
Spring Boot 2 学习指南与资料分享
来恩1003
Spring Boot2 spring boot 后端 java
SpringBoot2学习资料SpringBoot2学习资料SpringBoot2学习资料在当今竞争激烈的Java后端开发领域,SpringBoot2凭借其卓越的特性,为开发者们开辟了一条高效、便捷的开发之路。如果你渴望深入学习SpringBoot2,以下这份精心准备的学习指南与丰富的资料分享将成为你前行的得力伙伴。一、学习指南(一)入门奠基环境搭建:Java环境:确保开发机器安装了Java8或更
秋招Java后端开发——非关系型数据库篇(Redis)
番茄炒西红柿炒蛋
秋招Java后端 数据库 数据库 nosql redis
一、非关系型数据库1.主要针对的是键值、文档以及图形类型数据存储。2.特点:特点说明灵活的数据模型支持多种数据模型(文档、键值、列族、图),无需预定义固定的表结构,能够处理各种类型的数据。高扩展性设计为水平扩展,能够轻松地通过增加更多节点来处理大量的数据和高并发请求。高性能通过优化特定类型的查询和数据操作,通常比关系型数据库在大规模数据处理时表现更好。分布式架构天生支持分布式存储和计算,能够跨多个
java后端都要学那些知识
程序员牛马家
有关计算机就业的自我观点 java
java后端应该学习那些知识一、引言Java后端的重要性:介绍Java作为后端开发语言的广泛应用,包括企业级应用、大数据处理、云计算等领域。学习Java后端的意义:阐述掌握Java后端开发技能对于职业发展的重要性,以及它如何帮助解决实际问题。二、Java基础数据类型与变量:介绍Java的基本数据类型、变量声明与初始化。控制结构:详细讲解if-else、switch、for、while等控制语句的用
JAVA后端开发面试基础知识(一)——JVM
达分柒
后端面试基础 java 面试 jvm
1.JVM的主要组成部分及其作用Classloader(类装载)根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtimedataarea中的methodarea。Executionengine(执行引擎)执行classes中的指令。NativeInterface(本地接口)与nativelibraries交互,是其它编程语言交互的接口。Runtimedat
编程两年半了,还要坚持写博客吗?
程序员
前言思否的朋友你们好,我是何未来,计算机专业本科在读,在大学期间通过自己的努力获得了多个全国计算机类大赛奖项并连续两年获得奖学金,目前主要在学习Java后端开发,这是我在思否上发布的第一篇文章,今后我会持续更新Java后端,数据结构与算法,web前端,开源,效率开发工具和技巧等对你们有价值的计算机知识和问题解答,我会严格把关自己文章内容的质量,持续为大家输出高质量技术文章!三人行,必有我师焉,希望
Leo赠书活动-16期 名校毕业生教材
LeoToJavaer
CSDN送书活动 送书福利
Leo赠书活动-16期名校毕业生教材✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人个人主页:Leo的博客当前专栏:赠书活动专栏✨特色专栏:MySQL学习本文内容:Leo赠书活动-16期名校毕业生教材个人知识库:Leo知识库,欢迎大家访问目录Leo赠书活动-16期名校毕业生教材1.《深入理解计算机系统》2.《算法导论》3.《计算机程序的构造和解释》4.《数据库系
【晨间日记】2020年11月29日
语瞳SAMA
2020年11月29日天气:多云【90天践行目标】(175/210)①减重20斤②每日写时间规划③写晨间日记【昨日践行】①散步半小时②时间规划已完成③晨间日记已完成【今日青蛙】①制定Java后端学习计划②学习Java③改进RPG*昨日三只青蛙完成两只【反思日志】①听了昨日Java后端开发的dalao做的一个两小时的分享,从他制定的学习目标、学习方向以及自入学以来至现在的学习进度能够感受到,这才是“
Java和人工智能哪个好?
华清远见成都中心
java 人工智能 开发语言
Java和人工智能哪个好?Java和人工智能开发的工资高低主要取决于具体的工作岗位、行业、经验和技能水平等因素,很难一概而论。一般来说,这两个领域的工资都比较不错,尤其是在大城市和知名公司工作的薪资更高。在Java开发方向,像Java后端开发、大数据开发、微服务架构师、云计算架构师等高级岗位,收入会相对较高。而在人工智能领域,像机器学习工程师、深度学习工程师、自然语言处理工程师、数据科学家等方向的
程序员泛滥的时代,怎么样才能让自己脱颖而出?
Java自闭师
由于LZ本人是Java后端开发出身,因此所推荐的学习内容是JavaWeb和Java后端开发的路线,非JavaWeb和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。对
Java后端开发三年,你不得不了解的JVM
zwb_jianshu
喜欢的朋友可以关注下专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。JAVA程序员,三年是个坎,如果过了三年你还没有去研究JVM的话,那么你这个程序员只能是板砖的工具了。下面来个JVM的解析可好?JVM是JavaVirtualMachine(Java虚拟机)的缩写,也就是指的JVM虚拟机,属于是一种虚构出来的计算机,在我们实际的电脑上来进行模拟各
Java后端开发技巧:打造稳定的房屋租赁管理系统
疯狂行者
Python项目 Java项目 毕设项目 java 开发语言 spring boot vue.js python 房屋租赁
作者主页:疯狂行者✌java领域优质创作者,专注于Java技术领域技术交流✌文末获取源码精彩专栏推荐订阅:在下方专栏Java精彩实战项目案例Java精彩新手项目案例Python精彩新手项目案例文章目录Java精彩实战项目案例Java精彩新手项目案例Python精彩新手项目案例引言一、系统功能1.1开发环境三、部分功能展示四、部分代码设计【代码如下(示例):】总结源码获取:Java精彩实战项目案例J
微信小程序学习指南:从基础知识到代码展示
Java Fans
前端开发者成长之路 微信小程序 notepad++ 小程序
✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。个人主页:JavaFans的博客个人信条:不迁怒,不贰过。小知识,大智慧。当前专栏:微信小程序学习分享✨特色专栏:国学周更-心性养成之路本文内容:微信小程序学习指南:从基础知识到代码展示文章目录引言一、微信小程序的基础知识1.1小程序的概念和特点1.2开发工具的选择和安装1.3小程序的目录结构和文件类型二、微信小
Angular基础教程+Demo项目——尽可能全面一些——第一节
开发菜鸡
前端 angular
第二节预告:生命周期函数、Rxjs、数据请求、路由学习过程中所写的Demo_GitHub——学习Angular——浅度学习Demo官网:https://angular.cn/(官网是最好的老师哦,追求技术的大神可以继续深入啦)Angular前言(跳过即可,自勉而已)一写博客,不例外的喜欢啰嗦一下,本人是广大java后端开发中的一员,但是因为工作需要不得不利用工作之余学习Angular前端,虽然我对
【开题报告】基于SpringBoot+Vue.js的社区管理系统的设计与实现
加瓦程序设计师
开题报告 spring boot vue.js 后端
1.研究背景社区管理系统是近年来随着社区发展和居民需求增加而兴起的一种信息化管理工具。传统的社区管理方式存在信息传递不畅、居民参与度低、管理效率低下等问题,因此需要引入现代化的信息技术手段来改善社区管理工作。SpringBoot是一个轻量级的Java后端开发框架,具有快速开发、简化配置、内嵌服务器等特点,适合用于构建中小型的Web应用程序。Vue.js是一种流行的JavaScript前端框架,可以
JavaWeb后端开发(第一期):Maven基础、Maven的安装配置、如何创建maven项目模块、maven的生命周期
Make It Possible.
Java后端开发 maven maven java
Java后端开发:2024年2月6日->LiuJinTao文章目录JavaWeb后端开发(第一期):maven基础一、maven介绍1.1什么maven呢:1.2maven的作用1.3maven模型1.4maven仓库二、maven安装2.1配置本地仓库2.2配置阿里云私服2.3环境变量配置三、IDEA项目中配置maven3.1项目中配置maven3.2全局配置maven四、创建maven项目模块
大局观-高级后端工程师
dc爱傲雪和技术
java
1、负责游戏平台相关产品的设计、开发和维护,包括核心模块及架构的设计和看护;2、基于业务需求进行技术方案设计和编码实现,确保安全、可扩展性、质量和性能;3、解决高并发、高稳定性、业务模型复杂等技术难题,持续优化技术架构和功能,协助业务取得突破性进展;任职要求1、本科及以上学历,计算机软件或相关专业,3年以上java后端开发工作经验;2、扎实的java编程能力,熟练使用SpringBoot/Spri
浅谈——开源软件的影响力
Java Fans
CSDN活动专栏 开源软件
✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。个人主页:JavaFans的博客个人信条:不迁怒,不贰过。小知识,大智慧。✨特色专栏:国学周更-心性养成之路本文内容:浅谈——开源软件的影响力开源软件的影响力 随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开
Java实现的简单双向Map,支持重复Value
superlxw1234
java 双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
PL/SQL触发器基础及例子
百合不是茶
oracle数据库 触发器 PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
[时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
easy ui datagrid上移下移一行
商人shang
js 上移下移 easyui datagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
springMVC 使用JSR-303 Validation验证
杨白白
spring mvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
使用ajax和history.pushState无刷新改变页面URL
agevs
jquery 框架 Ajax html5 chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
centos中文乱码
AILIKES
centos OS ssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
JS正则表达式的i m g
bijian1013
JavaScript 正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
HTML5模式和Hashbang模式
bijian1013
JavaScript AngularJS Hashbang模式 HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
[Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
巧用视错觉-UI更有趣
brotherlamp
UI ui视频 ui教程 ui自学 ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构 算法 线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
HTTP协议详解
chicony
http协议
引言
Scala设计模式
chenchao051
设计模式 scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
安装mysql
daizj
mysql 安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
C语言中,关键字static的作用
e200702084
C++ c C#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转 递归反转 二分交换反转 java字符串反转 栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
代码实现任意容量倒水问题
home198979
PHP 算法 倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
两种启动监听器ApplicationListener和ServletContextListener
spjich
java spring 框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
JavaScript Rounding Methods of the Math object
何不笑
JavaScript Math
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen