servlet

Java多线程系列--“JUC原子类”02之 AtomicLong原子类

耗尽温柔 提交于 2020-03-09 05:38:33
什么是线程安全? 当多个线程访问某个类时,不管这些的线程的执行顺序如何,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 哈哈书上的解释,还是翻译过来的,看了半天还是觉得有点奇怪。比如说 “类都能表现出正确的行为” 是毛线意思?在网上搜了一番 "线程安全就是说多线程访问同一代码,不会产生不确定的结果" 这样反而跟容易理解,果然读书要么读原版中文书要么读原版英文书,看英文的翻译版真的是蛋疼无比。说到这里,我以前貌似把多线程及线程安全一个根本性问题搞混淆了: 所谓的多线程是指多个线程跑同一段代码,所以线程安全的概念是针对于这段代码而言的而不是针对线程。 一个 无状态 的Servlet //程序清单2-1 一个无状态的Servelet @ThreadSafe public class StatelessFactorizer implements Servlet{ public void service(ServlerRequest req, ServletResponse resp){ BigInteger i = extractFromRequest(req); BigInteger[] factors = factor(i); encodeIntoResponse(resp, factors); } }

Servlet入门

此生再无相见时 提交于 2020-03-09 03:36:49
web相关回顾1.软件架构 B/S C/S2.资源分类 1.静态资源:所有用户访问后得到的结果 2.动态资源:每个用户访问相同的资源后得到的结果可能一样,可能不一样 如servlet/jsp,php.asp....等3.通信三要素 1.TP 2.端口 3.传输协议4.web服务器软件: 服务器:安装了服务器软件的计算机 在web服务器软件中我们可以部署web项目 Tomcat:Apache基金组织一个中小型的javaEE服务器 是一个软件程序 下载安装卸载启动关闭配置 5.部署:直接把 项目放在webapps下面就行,或者解压为war包 或者在tomcat server.xml中部署项目 <Context docBase = "实际位置" path=“虚拟目录”/> 或者在localhost目录中自己创建一个xml就行了 6.动态项目: WEB-INF目录: web.xml:web项目的核心配置文件 classes目录:放置字节码文件的目录 lib目录:放依赖的jar包 7.server applet运行咋=在服务器端的小程序 动态资源其实就是java类,java类需要一定的规则(接口)才能让tomcat服务器去使用它 这个接口就是servlet 我们应该自定义一个类,复写方法 快速入门: 1.创建一个javaEE的项目 2.定义一个类,去实现servlet接口 public

JavaWEB总结--(5)JSP简介

江枫思渺然 提交于 2020-03-09 03:20:05
JSP jsp运行在java服务器中的界面,即动态界面,本质上是一个Servlet,其主要工程为HTML代码,Java代码片段,jsp标签组成。其文件后缀为.jsp。相比于Servlet,JSP更加善于处理显示页面,而Servlet跟擅长处理业务逻辑,两种技术各有专长,所以一般我们会将Servlet和JSP结合使用,Servlet负责业务,JSP负责显示。 jsp的脚本元素 脚本片段是嵌入到JSP中Java代码段,格式以<%开头,%>结尾,两个%号之间就可以编写Java代码了 <% System.out.println("test"); %> jsp表达式 JSP表达式用来直接将Java变量输出到页面中,格式以<%=开头,以%>结尾。 <% String str = "hellow world"; %> <%= str %> jsp对象 ① out(JspWriter):相当于response.getWriter()获取的对象,用于在页面中显示信息。 ② config(ServletConfig):对应Servlet中的ServletConfig对象。 ③ page(Object):对应当前Servlet对象,实际上就是this。 ④ pageContext(PageContext):当前页面的上下文,也是一个域对象。 ⑤ exception(Throwable)

java web----jsp语法

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 00:43:41
JSP学习 注意:jsp中${user},是在服务器上的,首先去request中找,没有去session中找。。。。。(自己总是错误的认识jsp是一个网页,在浏览器上进行的) Jsp的page指令学习   <%@page属性名=“属性值”属性名=“属性值”...%> 属性名:   1anguage:声明sp要被转译的语言。   import:声明转译的java文件要导入的包,不同的包使用逗号隔开。   pageEncoding:设置jsp文件的数据编码格式。   contentType="text/html;charset=utf-8"设置isp数据响应给浏览器时,浏览器的解析和编码格式。   session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭。   errorPage:设置jsp运行错误跳转的页面。(里面传入跳转的jsp路径)   extends:设置jsp转译的java文件要继承的父类(包名+类名)。 作用:   配置sp文件的转译相关的参数。 jsp java代码块 使用:<% java代码 %>局部代码块   缺点:可阅读性极差 局部代码块   声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中 <body> <% int a =3; if (a>1){ %> <b>

Tomcat是如何运行的?整体架构又是怎样的?

北战南征 提交于 2020-03-08 23:53:55
在许多的高端开发的岗位中都会或多或少有要求面试人员要研究过一些常用中间件源码。这是因为一切的秘密都是藏在源码中,阅读源码能够让我们对框架或者中间件的理解更加深刻,而我们也能够在源码的研究中获得其中一些优秀的设计方式。而我们的中间件和源码那么多,我们该从何入手呢?其实大部分的中间件或者框架都有一些共性的部分,例如网络编程、多线程、反射和类加载等技术。所以深入研究透了一两个中间件的话,那么再回过头来看其它的中间件,那么就会很容易理解它里面所用的技术以及原理。而作为一个老牌的WEB端框架Tomcat,无论是其整体的架构设计,还是其内在的一些技术灵活应用,都值得我们一看。 在学习框架的时候,我一般都是对这个框架有一个整体的认识。知道它整体是如何运行的,然后再深入其中某部分进行研究,这样会事半功倍。 整体架构 我们想要了解一个框架,首先要了解它是干什么的,Tomcat我们都知道,是用于处理连接过来的Socket请求的。那么Tomcat就会有两个功能: 对外处理连接,将收到的字节流转化为自己想要的Request和Response对象 对内处理Servlet,将对应的Request请求分发到相应的Servlet中 那么我们整体的骨架就出来了,Tomcat其实就分为两大部分,一部分是连接器(Connnector)处理对外连接和容器(Container)管理对内的Servelet。大体的关系图如下

干货 | 速速收藏:五分钟带你了解Spring IOC原理!

岁酱吖の 提交于 2020-03-08 22:34:10
spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。 Bean缓存池:HashMap实现 IOC容器介绍 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。 BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身; ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合我们都直接使用 ApplicationContext 而非底层的 BeanFactory。 BeanFactory BeanFactory体系架构: BeanDefinitionRegistry : Spring 配置文件中每一个节点元素在 Spring 容器里都通过一个 BeanDefinition 对象表示,它描述了 Bean 的配置信息。而 BeanDefinitionRegistry

Servlet(三)----Servlet体系与HTTP

我怕爱的太早我们不能终老 提交于 2020-03-08 22:22:45
## Servlet的体系结构    Servlet --- 接口     |     |   GenericServlet --- 抽象类     |     |   HttpServlet -- 抽象类   GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象     * 将来定义Servlet类时,可以继承GenericServlet,实现Service()方法即可。   HttpServlet:对HTTP协议的一种封装,简化操作     1、定义类继承HttpServlet     2、复写doGet/doPost方法 ## Servlet相关配置   1、urlpartten:Servlet的访问路径      * 一个Servlet可以定义多个访问路径: @WebServlet({"/d1","/d2"})     * 路径定义规则:       1、/xxx       2、/xxx/xxx:多层路径,目录结构       3、*.do package com.ftj.servlet.demo02; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet

SpringMVC——HelloSpringMVC

…衆ロ難τιáo~ 提交于 2020-03-08 20:29:11
SpringMVC 轻量级,高效,基于请求响应的MVC框架 特点:约定大于配置,简洁灵活 功能强大:RESTful、数据验证、格式化、本地化、主题等 helloSpringMVC 首先把DispatcherServlet配置到web.xml中: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--配置DispatcherServlet:这个是SpringMVC的核心--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--DispatcherServlet要绑定Spring的配置文件--

SpringMVC的注解开发入门

巧了我就是萌 提交于 2020-03-08 16:22:04
1.Spring MVC框架简介 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法签名,可完全独立于Servlet API 2.Spring MVC框架结构,执行流程 3.如何在应用中使用Spring-MVC? 在应用中添加Spring框架支持; 在web.xml中配置Spring-MVC的请求转发器(前端控制器) 编写Spring-MVC的配置文件 将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法 完成 4.今天我们先来了解一下我们注解开发的小例子(简单登录) 一:转发(forward) 源码介绍: 1.lib包(jar包)和 web.xml文件的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi

新SSM框架整合

拟墨画扇 提交于 2020-03-08 14:31:27
链接【 https://github.com/Davis-Samuel/ssm-order 】 1.父工程ssmbuild 导入pom依赖,资源预留,编码: <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <!--jsp表达式的依赖--> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2<