美文网首页
2018-08-28

2018-08-28

作者: 墨色尘埃 | 来源:发表于2018-08-28 09:53 被阅读15次

POST请求
@RequestBody --> JSON字符串部分
@RequestParam --> 请求参数
-----form-data多用于上传文件-----

①(@RequestBody Map map)
②(@RequestBody Object object)
application/json可用
form-data、x-www-form-urlencoded不可用

③(String waterEleId, String enterpriseName)
①(@RequestParam Map map)
②(@RequestParam String waterEleId)
application/json不可用,url中的?后面添加参数可用
form-data、x-www-form-urlencoded可用,但是要将Headers里的Content-Type删掉

①(Map map)
②(Object object)
③(@RequestParam Object object)
都不可用

①(HttpServletRequest request, @RequestBody Map map)
②(HttpServletRequest request, @RequestBody Object object)
application/json可用
form-data、x-www-form-urlencoded不可用

①(HttpServletRequest request)
②(HttpServletRequest request, String waterEleId)
③(HttpServletRequest request, @RequestParam Map map)
④(HttpServletRequest request, @RequestParam String waterEleId)
application/json不可用,url中的?后面添加参数可用
form-data、x-www-form-urlencoded时可用

④(HttpServletRequest request, Map map)
①(HttpServletRequest request, Object object)
①(HttpServletRequest request, @RequestParam Object object)
都不可用

GET请求
RequestBody -- Map / Object
都不可用

①(@RequestParam Map map)
在url中的?后面添加参数即可使用

①(@RequestParam String waterEleId,
@RequestParam String enterpriseName)
在url中的?后面添加参数即可使用

①(@RequestParam Object object)
都不可用

excel表格某列/某几列数据重复 validateRowData方法
方法一:每读取一行数据就放入集合,该行数据和集合作比对(行数多的时候会卡死)
方法二:将所有数据存放到集合中,对集合进行双重for循环(效率高)
不能在for循环里面再添加数据
for (RowData data : rowDatas) { //data上一条数据
if (splicingValue.equals(data.getSplicingValue())) {
errorString.append("第" + rowData.getRow() + "行第" + rowData.getUsccColumn() + "列、第" +
rowData.getMonthColumn() +"列不能和第"+data.getRow()+ "行第" + data.getUsccColumn() +
"列、第" + data.getMonthColumn() +"列完全相同"+ "
");
}else {
rowDatas.add(rowData); //在for循环里面添加数据是错误的
}
}

1、Servlet是一切处理的中心,3.0之后与Security
request.login(userId, password);实际是调用的Security里封装了的内容

2、数据库查询
一对多,Left JOIN左连接,数据会增多
多对一,Left JOIN左连接,数据不会增多

3、session是一个会话,对于同一个域名下的有用,同一个浏览器吗
session和cookie的区别

11、<select id="selectTodoFieldsByBusiType" parameterType="java.lang.String" resultMap="WorkflowTodoFields">
SELECT CONCAT(T.TABLE_NAME, " V") AS 'TABLE_NAME', GROUP_CONCAT(CONCAT("V.", T.FIELD_NAME)) AS 'FIELD_NAME'
FROM t_workflow_todo_fields T
WHERE T.BUSI_TYPE = #{busiType, jdbcType=VARCHAR}
GROUP BY T.TABLE_NAME
</select>

3、大写转换成驼峰
WorkflowControl类中P70行
List<Map> list = workflowMpper.getToDoList(formData);

    List<Map> newList = new ArrayList<>();
    for (Map map : list) {
        Map newMap = new HashMap();
        Iterator<Map.Entry> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = iterator.next();
            String key = (String) entry.getKey();
            Object value = entry.getValue();

            String[] strs = key.split("_");
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < strs.length; i++) {
                if (0 == i) {
                    sb.append(strs[i].toLowerCase());
                } else {
                    sb.append(strs[i].substring(0, 1));
                    sb.append(strs[i].substring(1).toLowerCase());
                }
            }
            String newKey = sb.toString();

            newMap.put(newKey, value);
        }
        newList.add(newMap);
    }

4、接口返回图片
设置图片下载:response.setContentType("application/octet-stream");
设置图片显示:response.setContentType("image/jpeg");
设置图片文件名:response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(oFileName,"UTF-8"));
设置图片缓存:response.setHeader("Cache-Control","max-age=604800");

/templates/**
file:\E:\IdeaProjects\gaygserver\src\main\resources\static\
classpath:/static/ (文件被打入jar包情况下)
http://127.0.0.1:10003/templates/ggg.jpeg
有自定义虚拟路径时,默认虚拟路径也可以用 (文件被打入jar包情况下)
http://127.0.0.1:10003/ggg.jpeg

/** 覆盖默认
file:\E:\IdeaProjects\gaygserver\src\main\resources\static\
classpath:/static/ (文件被打入jar包情况下)
http://127.0.0.1:10003/ggg.jpeg
两反斜杠\等同于一个斜杠/
注意:末尾的两个反斜杠必须要有

eclipse 不能引用 javax.imageio.ImageIO;
我曾经遇到过该问题,困扰了好久,解决方案是:Project---Properties,选择Java Build Path,选中右侧的Libraries,选择Add Library如下图,选中JRE System Library 选择next,进入下一界面选择Execution environment,点击Enviroments按钮选择你采用的JDK如JavaSE-1.6等,不要选下面的OSGi,最后单击完成即可。

java正则表达式_正整数或小数且小数位数不超过n位
String regExp = "^[1-9][0-9]*(\.[0-9]{1,"+10+"})?$"; //n为小数位数,n=10
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(str);
return m.matches();

boolean result = str.matches("[0-9]+"); //正则表达式:该字符串是纯数字
boolean result1 = str.matches("^[0-9]+(.[0-9]{2})?$"); //正则表达式:两位小数点

传入list集合批量查询

studio中输入时:光标在引号内的,想跳出引号可以再按一次shift+引号,还有试试:ctrl+shift+enter

application.yml

logImpl: org.apache.ibatis.logging.stdout.StdOutImpl #打印控制台的信息

logback.xml
打印...

1/windows下部署是直接用java-jar运行好还是tomcat部署好:
打war包 是为了修改一些文件方便, 但是我们不需要, 我们是前后端分离。
大部分情况下只需要修改yml,jar包的话,改了你就得重新打包运行
Tomcat应该就和我们本地的IDEA一样,修改了Java直接重新运行就好
springboot运行项目和java-jar运行时一样的原理,利用JVM

redis:
redis-server.exe redis.windows.conf是启动单次服务,启动的是redis.windows.conf配置文件
services.msc是设置成网络服务,一直启动
redis-cli.exe相当于redis-cli.exe -h 127.0.0.1 -p 6379

t_menu:
test 测试 101006 0 102 1 calendar /v1/getInvestdetailList 101001 admin 2018-03-21 11:29:09
t_role_menu:
test 278689884 test 101006 admin 2018-03-21 11:32:02 101001

在187上配置了nginx,详见桌面nginx.cnf和nginx配置1.cnf。配置后的访问路径为:远程服务器地址10.10.200.187
如果不通过187配置nginx,那么访问路径为:10.10.200.18。例如家里的访问路径是172.16.11.66:10002
nginx通过187访问18服务器,18后台执行代码,跳转的噢,通过配置文件配置的路径地址下载模板,
其实下载的还是18上面的,而不是200.6文件服务器上的。而家里的模板路径
加了权限之后,所有的请求或者url路径就要在同一个域名下访问
比如企业云:在localhost:8000下下载模板功能,如果点击之后跳转到http://172.16.11.66:10002/templates/%E4%BC%81%E4%B8%9A%E4%BF%A1%E6%81%AF%E7%AE%A1%E7%90%86.xls
http://localhost:8000/#/EnterpriseCloud/BasicDataManage
http://localhost:8000/templates/企业信息管理.xls

eclipse打war包和jar包
war包和jar包区别:
war包放入tomcat的webapps文件夹下,启动bin下startup.bat即可启动tomcat,相当于eclipse启动web项目Run As Servers
本地浏览器访问:http://localhost:8180/parkmall/loginAction.do?login或者http://127.0.0.1:8180/parkmall/loginAction.do?login
如果在远程服务器上也启动了服务,那么访问路径就是:http://172.16.11.68:8180/parkmall/loginAction.do?login(以172.16.11.68为例)

使用Springsecurity框架对加密后的密码进行验证
if (passwordEncoder.matches(oldPwd, userInfoByUserName.getPassword())) {
userInfoByUserName.setPassword(passwordEncoder.encode(newPwd));
} else {
throw new BusinessException("修改密码失败,原密码不正确");
}

加密部分方法
@Test
public void pwd() {
StandardPasswordEncoder standardPasswordEncoder = new StandardPasswordEncoder();
String encode = standardPasswordEncoder.encode("96e79218965eb72c92a549dd5a330112");
System.out.println(encode);
}

1、下载模板
不需要通过继承WebMvcConfigurerAdapter自定义类,比如贵安云谷TemplatesConfiguration类,或者通过接口方式下载模板。
有一种更简单的方法:通过服务管理器配置一个IIS服务,指向目标路径。然后再通过nginx代理的路径访问
在66后台服务器上启动后台服务,在39文件服务器上配置IIS服务,模板也在39服务器上。nginx代理在66服务器上。

SELECT
formId AS P_ID,
formTitle AS P_NAME,
longtitude AS LONGITUDE,
latitude AS LATITUDE,
t_user.userName AS 查勘人,
t_user.department AS 部门,
FROM_UNIXTIME(updateTime / 1000, '%Y-%m-%d') AS 查勘时间,
city AS 所在城市,
province AS 所在省份,
t_form.formRemark AS 备注
FROM
t_form
LEFT JOIN t_user ON t_user.userId = t_form.userId
FROM_UNIXTIME(updateTime / 1000, '%Y-%m-%d') AS 查勘时间:将1523632363828时间转为2018/4/13这种时间格式

mybatis-plus框架表id为bigint类型
Could not set property 'id' of 'class com.jsptpd.sitemanage.modules.business.model.SitePhoto' with value '996297847782580226' Cause: java.lang.IllegalArgumentException: argument type mismatch

eclipse 更新war包到正式环境服务器上
拷贝本地的tomcat下的webapps文件夹下的parkmall项目,同时需要修改数据库连接(换成正式环境数据库地址)
这样做的话,webapps文件夹下就可以不需要parkmall.war包了,因为运行war之后启动服务依然是解压为parkmall文件夹。
另外,使用eclipse打包的war包启动服务一直有问题,可能是数据库连接未改??

使用mybatis-plus框架时,对应的数据库表的主键必须为ID且是bigint类型,不能为PROJECT_ID等
对应的model中为private Long id

选中多个用户时,前端使用application/json上传方式,其实不是传的
"orderIdList": [
"testfb1",
"huangjihai"
]这种格式,这样在model实体类中也不能被List<String> orderIdList接收到。
而是使用"orderIdList": "2,3,4,5,6" 这种String格式,实体类中使用String orderIdListe接收,
然后String.split方法

1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存),session 可以放在 文件、数据库、或内存中都可以
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,用户验证这种场合一般会用 session

查看当前网站的cookie的两种快捷方法
①在浏览器的地址栏输入:javascript:alert(document.cookie) (不区分大小写),就会弹出你在当前网页登录的cookie信息。
②按F12进入浏览器的开发者模式——console——在命令行输入javascript:alert(document.cookie),再回车

Redis的两个典型应用场景:
①数据缓存:第一个应用场景是数据缓存,最典型的当属缓存数据库查询结果。对于高频读低频写的数据,使用缓存可以第一,加速读取过程,第二,降低数据库压力。
②共享Session:贵安云谷项目就用到了

阿里巴巴druid数据库连接池
贵安云谷以及portal项目:om.jsptpd.portal.common.config.druid包下DruidConfig+DruidStatFilter+DruidStatViewServlet
使用http://localhost:10002/druid/login.html 这个地址访问。10002指的是application-dev.yml/application-prod.yml里的port

Servlet中的doGet和doPost是不是对应于springboot中的GET和POST
springboot中是不是封装了servlet框架
servlet框架有哪些

show databases;
use database_name;
show tables;
mysql -u root –p

相关文章

  • 新故事

    2018-08-28

  • 晨雨随笔

    2018-08-28 下墨 2018-08-28 05:05 · 字数 183 · 阅读 0 · 日记本 昨天出去...

  • 2018-08-29

    2018-08-28 魏春香 2018-08-28 06:27 · 字数 386 · 阅读 0 · 日记本 201...

  • 2018-08-28

    戴师傅 2018-08-28 2018-08-28 20:32 打开App (稻盛哲学学习会)打卡第124天 姓名...

  • 【置顶】技术研发视频分享汇总

    Android 2018-08-29更新 Android架构技术 2018-08-28 更新 Android核心技...

  • 2018-08-29

    2018-08-28 张shilian 2018-08-29 22:28 · 字数 388 · 阅读 1 · 日记...

  • 2018-08-29

    2018-08-29 万千工品金秀 2018-08-28 22:22 · 字数 376 · 阅读 4 · 日记本 ...

  • 2018-08-28

    2018-08-28 万千工品金秀 2018-08-27 23:24 · 字数 286 · 阅读 8 · 日记本 ...

  • 建立家规的几个原则

    夕玹 2018-08-28 14:44 · 字数 1114 · 阅读 0 · 日记本 制定家规是进行家规教育...

  • 懂你 L4-U1-3-Listening-Harry's

    流利说 D62 2018-08-28 一、复习 Level4-Unit1-Part2*Learning- Voca...

网友评论

      本文标题:2018-08-28

      本文链接:https://www.haomeiwen.com/subject/qzcfwftx.html