javaWeb
xbog
初学者
展开
-
用HandlerInterceptor实现登陆状态确定
主要目的是:确定是用户是否登陆,通过每次请求检测ticket时候存在来实现。基本原理:注册拦截器+实现拦截器+设置线程副本变量一、注册拦截器:extends WebMvcConfigurerAdapter@Componentpublic class WendaWebConfiguration extends WebMvcConfigurerAdapter {@AutowiredPassport原创 2016-10-09 09:17:34 · 3260 阅读 · 0 评论 -
注册模块
注册模块基本原理:从/reglogin页面中提交username和password,此页面的form表单action–》/reg进入controller中方法,requestMapping(“/reg”),注册,addUser,和response.set(cookie),并model.addAtri(“msg”,msg). 最后跳转到/(主页)。这里设计3个urI,提交前:/reglogin,提交原创 2016-10-08 16:32:49 · 772 阅读 · 0 评论 -
点赞实现[多对多的redis实现]
点赞实现:思路:每个question对应一个set();调用jedis.sadd(key,value); 由于question–赞userId是多对多的数据表结构,所以set结构扩展:每个文章有不同的标签,也可以用这种数据结构实现:业务层:@Serveice//用户userId,对某个评论或者回答进行了点赞public long like(int userId,int entityType,in原创 2016-10-18 16:50:58 · 3429 阅读 · 0 评论 -
异步实现消息队列
为什么要使用队列,什么情况下才会使用队列? 那些实时性要求不高,且比较耗时的任务,是队列的最佳应用场景。比如说我在某网站注册一个账号,当我的信息入库注册成功后,网站需要发送一封激活邮件,让我激活账号,而这个发邮件的操作并不是需要实时响应的,没有必要卡在那个注册界面,等待邮件发送成功,再说发送邮件本来就是一个耗时的操作(需要调用第三方smtp服务器),此时,选择消息队列去处理。 就原创 2016-10-18 16:28:29 · 829 阅读 · 0 评论 -
velcocity中toolbox中的日期格式化工具
经常会遇到时间在velocity中显示,默认并不是一个规范的时间: Thu Oct 13 20:35:55 CST 2016现在需要格式化成: ‘yyyy-MM-dd HH:mm:ss’需要做以下步骤:1在resource的目录中设置: toolbox.xml:代码如下:<toolbox><tool> <key>date</key> <scope>application</s原创 2016-10-04 21:32:11 · 375 阅读 · 0 评论 -
MVC中三层规范写法示例
经常会在web项目中用到MVC模式的写法C:控制层Controller,负责对请求的url分发到不同的网址,处理请求的入口。 M:规范数据数据成Bean,并负责调用数据库 V:只负责从数据库获取数据,并显示。此三层的设计充分得将数据显示与数据操作很好的分离开了,是一种极佳的面向对象的设计思路。下面把常见的MVC模式的规范写法总结如下:model:public class Question {原创 2016-10-04 20:54:50 · 3273 阅读 · 0 评论 -
MyBatis中动态SQL语句的书写
官网的动态SQL语句参考 动态SQL语句的书写 这里面的Dao.xml比如和java包中的对应的Dao路径一致:主要的步骤是: 1、在SQLWorkbench中创建SQL语句,并复制到SpringBoot的项目resource目录中DROP TABLE IF EXISTS question;CREATE TABLE `wenda2`.`question` ( `id` INT NOT N原创 2016-10-04 17:09:43 · 1980 阅读 · 0 评论 -
Junit中的Assert常见方法
在静态类junit.framework.Assert或者静态类org.junit.Assert中存在以下几个方法1.assertEquals(a,b)方法,用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;2.assertFalse()和assertTrue()方法,用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测原创 2016-10-04 15:53:05 · 996 阅读 · 0 评论 -
【2】SpringBoot的MyBatis配置
SpringBoot的MyBatis配置基本上和JBDC原理一致。 传送门:JDBC的基本原理 下面演示一个例子。1、在pom.xml中加载驱动包:mysql-connector-java和Mybatis包:mybatis-spring-boot-starte此项的目的在于在pom中注册包: <dependency> <groupId>org.mybatis原创 2016-10-04 15:43:44 · 325 阅读 · 0 评论 -
IntelliJ IDEA & Eclipse等web项目的乱码终极解决方法
关于IDE乱码基本上从MyClipse到如今的intellij IDEA都经常遇到。也踩了许多坑。网上各种答案也都尝试,但是都没有一个完全的解决放啊按。最近又遇到到了,于是做以下总结:关于乱码,是编码格式没有统一:在web项目中,主要编码格式改变的地方有:1,虚拟机加载文件编码,2,IDE的保存文件编码3,html文件,xml文件等外部保存的编码,4,web服务器入tomcat的编码现在知原创 2016-11-08 17:02:39 · 10037 阅读 · 0 评论 -
JDBC连接数据的基本原理
JDBC连接数据的基本原理首先我们来看一下JDBC连接数据的基本原理:(分为7个步骤)1,加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机)2,提供JDBC连接的URL: •连接URL定义了连接数据库时的协议、子协议、数据源标识。 •书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以j原创 2016-10-04 15:20:26 · 563 阅读 · 0 评论 -
拦截器实现未登录跳转
下面用实际登陆跳转举例1、写自己的拦截器implements HandlerInterceptor,实现跳转去执行拦截内容并传,执行拦截之后的URI@Componentpublic class LoginRequiredInterceptor implements HandlerInterceptor {@AutowiredHostHolder hostHolder;//目前页面是需要登陆,如原创 2016-10-09 21:22:58 · 6772 阅读 · 1 评论 -
HandlerInterceptor拦截器
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAn原创 2016-10-09 09:29:44 · 434 阅读 · 0 评论 -
显示单元的封装类:ViewOfObject
ViewOfObject常见的运用是在:在网页的显示层中一个显示单元,可能由多个类的属性组成,这里采用ViewOfObject(map<String,Object>):把这些类用Object的map容器封装成一起。这里的Object,可以接受多中类型。这里运用到了父类声明可以接受子类的对象–即多态以下为示例代码:1、对象的定义:public class ViewOfObject { Hash原创 2016-10-04 21:04:45 · 269 阅读 · 0 评论