Java EE

初识MVC(mvc介绍与基础)Hello Wrold

China☆狼群 提交于 2021-02-18 06:20:24
MVC 全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写 ⦁ 常用主要组件 ⦁ DispatcherServlet:前端控制器 ⦁ Controller:处理器/页面控制器,做的是MVC中的C的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理 ⦁ HandlerMapping :请求映射到处理器,找谁来处理,如果映射成功返回一个HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器对象) ⦁ View Resolver : 视图解析器,找谁来处理返回的页面。把逻辑视图解析为具体的View,进行这种策略模式,很容易更换其他视图技术; ⦁ 如InternalResourceViewResolver将逻辑视图名映射为JSP视图 ⦁ LocalResolver:本地化、国际化 ⦁ MultipartResolver:文件上传解析器 ⦁ HandlerExceptionResolver:异常处理器 1. 配置服务器,如Tomcat 2 新建Web工程,加入 jar 包 spring-aop-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy BUG排查

杀马特。学长 韩版系。学妹 提交于 2021-02-18 02:25:18
将某个子项目从war包转化为jar包打包方式后。忘记修改pom.xml中对servlet-api等的修改。 <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>8.0</version> <scope>provided</scope> </dependency> 因此在开发环境中,因为ecplise中自带有javaee-api包。没有发现任何问题,然后在用java -jar方式中运行时,出现BUG java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 在类似服务器部署环境没法进行debugger的条件下,正好这两天看了 arthas 可以类似aop,监听某方法的调用等。刚好能查看一下这个莫名奇妙的异常信息。 arthas 的操作主要有两步: 打开 arthas options unsafe (对系统级别的类进行增强)。因为sun.reflect.annotation.TypeNotPresentExceptionProxy类是系统类,直接watch监听会报No class or method is affected; watch sun.reflect

SpringBoot @RequestBody 报错 ('application/x-www-form-urlencoded;charset=UTF-8' not supported)

こ雲淡風輕ζ 提交于 2021-02-18 01:54:52
第一种:转 https://blog.csdn.net/chenfei2341/article/details/83652586 在Spring boot 中使用 @RequestBody 会报错,提示错误 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported ,代码如下: @RequestMapping(value = "/act/service/model/{modelId}/save", method = RequestMethod.POST) public void saveModel(@PathVariable String modelId, @RequestBody MultiValueMap<String, String> values) { // 具体代码 } 这个在传统 spring MVC 中是有效的,但是在 Spring boot 中会报错。 传统是 Spring MVC 有效,是因为有 <mvc:annotation-driven> 注解,查资料,<mvc:annotation-driven> 注解配置了如下的内容 spring 3.1 版本: <!-- 注解请求映射 --> <bean class ="org.springframework.web

CAS单点登录(一):单点登录与CAS理论介绍

吃可爱长大的小学妹 提交于 2021-02-18 00:03:06
一、什么是单点登录(SSO)   单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。   单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 二、web系统如何实现单点登录 目前已经有了成熟的单点登录实现方案,比如CAS,我们只要在web系统中应用单点登录方案CAS即可。(主要涉及到注册登录验证等模块的改动)。 三、什么是CAS   CAS (Central Authentication Service) 是耶鲁 Yale 大学发起的一个java开源项目,旨在为 Web应用系统提供一种可靠的 单点登录 解决方案( Web SSO ), CAS 具有以下特点: 开源的企业级单点登录解决方案; CAS Server 为需要独立部署的 Web 应用----一个独立的Web应用程序(cas.war)。 ; CAS Client 支持非常多的客户端 ( 指单点登录系统中的各个 Web 应用 ) ,包括 Java, .Net, PHP, Perl, 等。   CAS在2004年12月成立Jasig项目,所以也叫JA-SIG CAS。   官网1: https://apereo.github

Servlet监听器

我怕爱的太早我们不能终老 提交于 2021-02-17 20:36:45
Servlet监听器 一、监听器简介   监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。   Servlet 监听器:Servlet 规范中定义的一种特殊类,它用于监听 web 应用程序中的 ServletContext, HttpSession 和 ServletRequest 等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。 二、Servlet监听器分类   按监听的事件类型 Servlet 监听器可分为如下三种类型:   ①监听域对象自身的创建和销毁的事件监听器   ②监听域对象中的属性的增加和删除的事件监听器   ③监听绑定到 HttpSession 域中的某个对象的状态的事件监听器 三、编写Servlet监听器   Servlet 规范为每种事件监听器都定义了相应的接口,开发人员编写的事件监听器程序只需实现这些接口,web 服务器根据用户编写的事件监听器所实现的接口把它注册到相应的被监听对象上   一些 Servlet 事件监听器需要在 web 应用程序的 web.xml 文件中进行注册,一个 web.xml 文件中可以注册多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。  

servlet监听器

戏子无情 提交于 2021-02-17 20:36:31
application:上下文对象,是由容器创建和初始化的,它的范围是整个的web应用,而且整个web应用中只会有一个 application对象存在,当web服务器关闭时,就会将application对象销毁 session:是一种保存上下文信息的机制,它是针对每个会话的,它是放在服务器端,通过SessionId区分的,在浏览器和服务器结束后,都会将session销毁 request对象:是当客户端发送请求时,容器就会创建一个ServletRequest对象,来进行封装请求数据,同时会创建一个servletResponse对象来进行封装相应数据,当结束封装请求之后,就会销毁该对象 WEB监听器,就是监听这3个对象的创建,销毁,和它们的属性发生的变化 什么是web监听器 Web监听器的用途: 1,统计在线人数和在线用户。 2,系统启动时加载初始化信息。 3,统计网站访问量。 4,跟Spring结合。 监听器的用法 实现了 ServletContextListener 接口,创建一个 监听源 为 ServletContext 的监听器,当服务器启动时,便会创建application对象并调用初始化方法.可以通过初始化方法的参数来对application对象做出一些操作. 当服务器关闭,application对象销毁时,也会调用监听器的销毁方法,也可以通过参数来作出一些操作

mac统计项目代码行数

淺唱寂寞╮ 提交于 2021-02-17 13:56:09
一、安装cloc brew install cloc 二、统计 商城代码行数 $ cd /Users/shijun/Desktop/ideaWorkspace/Www $ cloc ./ 1051 text files. 1010 unique files. 200 files ignored. github.com/AlDanial/cloc v 1.76 T=2.80 s (305.7 files/s, 82338.1 lines/s) ----------------------------------------------------------------------------------- Language files blank comment code ----------------------------------------------------------------------------------- JavaScript 125 12953 21263 73746 Java 374 4737 1945 32908 CSS 46 1019 875 23788 HTML 35 181 2847 19287 JSP 81 1568 1050 15119 XML 158 449 354 5976 PHP 28 1033 2402 5190 ASP 5

springboot自定义异常

徘徊边缘 提交于 2021-02-17 08:55:21
SpringBoot自定义异常以及异常处理 在web项目中,我们可能需要给前端返回不同的提示码。例如:401表示没有权限,500代表位置异常,200代表请求成功等。但是这些提示码远远不能满足我们返回给前端的提示,可能还需要我们自定义错误码给前端,前端获取相应的错误码以及错误信息,展示到页面中。 使用自定义异常可以解决这些返回值,利用自定义异常以及对异常的处理,可以在返回的时候自定义我们的返回码以及错误信息等。 一、自定义异常类 /** * @author : lxw * @Date: 2019/2/16 20:00 * @email: * @Description: 自定义异常(继承运行时异常) */ public class ExceptionUtils extends RuntimeException { private static final long serialVersionUID = 1L ; /** * 错误编码 */ private int code; /** * 消息是否为属性文件中的Key */ private boolean propertiesKey = true ; /** * 构造一个基本异常. * * @param message 信息描述 */ public ExceptionUtils(String message) { super

蚂蚁金服(上海、成都) Java开发工程师大量招人!!!

不想你离开。 提交于 2021-02-17 08:47:48
接触最复杂最有技术挑战的国际支付场景,体验不同文化和金融支付场景和技术解决方案的碰撞。一笔你在香港买星冰乐完成的支付请求,沿着太平洋海底的光缆, 挑战美国机房的IO上限,然后优雅而迅速的展示给你支付的结果,这一切的美好,可能就是产生于某个夜晚你的青轴cherry之上。 如果有一个机会在支付宝账号上充值1000w并花完去验证业务的完整性,何不一起来呢? 蚂蚁金服,国际支付全球开放平台团队,始终站在国际支付的最前沿,而他们此刻,最想要的 —— 就是如他们一样热血的你。 职位信息: 公司: 蚂蚁金服·互联网·蚂蚁金服(杭州)网络技术有限公司 职位名称: Java高级工程师、基础平台研发工程师 职位类型: Java 部门: 蚂蚁金服-国际事业群-国际技术 工作地点: 上海、成都 职位要求: 工作性质: 全职 经验: 3年以上 薪资范围: 20K-40K Java高级工程师 职位描述: 1、主导各类业务及技术改造类项目的系统分析与设计工作,承担核心功能代码编写,开发与维护系统公用核心模块; 2、系统性能优化,主导技术难题攻关,持续提升系统在大规模分布式系统环境下高并发、海量请求数下的高处理性能,解决各类潜在系统技术风险,保证系统的安全、稳定、快速运行; 3、负责指导、培训普通开发工程师,审核开发工程师的设计与研发质量; Java高级工程师 职位要求: 1、扎实的java编程基础,精通Java

12张手绘图,终于搞懂了微服务架构

萝らか妹 提交于 2021-02-17 07:08:43
作者 | tengshe789 来 源 | https://juejin.im/post/5c0ba2bef265da614d08fefe 微服务的概念最早在 2012 年提出,在 Martin Fowler 的大力推广下,微服务在 2014 年后得到了大力发展。 今天我们通过一组手绘图来梳理下微服务的核心架构。 什么是微服务? 微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。 但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。 可以使用不同的语言来编写服务,也可以使用不同的数据存储。