servlet

tomcat线程安全问题

一个人想着一个人 提交于 2020-04-04 11:19:52
tomcat接受一个请求时,会从线程池中拿一个线程来处理这个线程,在处理的过程中会找到这个请求对应的servlet,servlet在容器中是单例的,此时如果多个请求同时请求servlet中的一些成员变量,那么就会产生线程安全问题 来源: https://www.cnblogs.com/mwss/p/12630657.html

tomcat目录结构及配置文件说明

柔情痞子 提交于 2020-04-04 09:02:08
TOMCAT的目录结构 /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml /doc:存放Tomcat文档 /server:包含三个子目录:classes、lib和webapps /server/lib:存放Tomcat服务器所需的各种JAR文件 /server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用 /common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件 /shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问) /logs:存放Tomcat执行时的日志文件 /src:存放Tomcat的源代码 /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录 /work:存放JSP编译后产生的class文件 WEB应用的目录结构: 假设在$CATALINA_HOME/webapps下有helloapp的web应用 /helloapp:Web应用的根目录,所有的jsp文件和html文件都在此目录下 /helloapp/WEB_INF:存放该web应用发布时的描述文件web.xml /helloapp

JavaWeb学习 (二十)————JavaWeb的两种开发模式

怎甘沉沦 提交于 2020-04-04 06:51:59
一、JSP+JavaBean开发模式 1.1、jsp+javabean开发模式架构   jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1   在jsp+javabean架构中,JSP负责控制逻辑、表现逻辑、业务对象(javabean)的调用。   JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。 1.2、JSP+JavaBean开发模式编写计算器   首先分析一下jsp和javabean各自的职责,jsp负责显示计算器(calculator)页面,供用户输入计算数据,并显示计算后的结 果,javaBean负责接收用户输入的计算数据并且进行计算,JavaBean具有firstNum、secondNum、result、 operator属性,并提供一个calculate方法。   1、编写CalculatorBean,负责接收用户输入的计算数据并且进行计算   CalculatorBean代码如下: 1 package me.gacl.domain; 2 3 import java.math.BigDecimal; 4 5 /** 6 * @author gacl 7 * CalculatorBean用于接收输入参数和计算 8 */ 9 public

常见错误及解决方案

依然范特西╮ 提交于 2020-04-04 05:19:48
Javaweb项目启动 ,用浏览器查看时。常见错误及解决方案。 1、404错误 1.1 404数字是什么? -------是server运行完client的请求以后,返回给client的一个运行结果的状态编码 1.2 产生的原因 ------Webserver(容器)依据请求地址找不到相应资源。 如: 地址错误(拼写不对,字母大写和小写错误) web.xml文件里的两个<servlet-name>不一致 project没有部署 Web应用程序部署结构没有遵守Servlet规范 1.3 解决方法 依照http://ip:port/appName/url-pattem规则检查,请求地址,区分大写和小写 检查web.xml文件里的<servlet>和<servlet-mapping>节点中的两个<servlet-name>是否一致 仅仅有部署以后的project才干訪问 检查project结构是否符合规范 2、405错误 2.1 产生的原因 ----Webserver(容器)找不到service()方法处理请求。 如: service方法名称写错 service方法參数类型与标准不一致 service方法异常,返回值类型与标准不一致 2.2解决方法 检查service()是否存在 检查service()的签名(方法名,參数,返回值,异常类型)是否与覆盖的父类中的方法一致 3、500错误

Web服务器(容器)请求常见的错误及其解决方法

夙愿已清 提交于 2020-04-04 05:05:29
首先我们来看看容器如何找到service()方法? (1)当在浏览器中输入 http://localhost:8080/firstweb/sayHi 这个地址后,容器是如何找到 HelloServlet.class这个文件并执行的呢? (2)首先容器会根据firstweb这个应用名找到位于webapps下面对应的文件夹, (3)然后根据地址中的“/sayHi”到web.xml文件中寻找与之匹配的<url-pattern>节点,找到匹配的节点后会找到与该节点紧邻的<servlet-name>节点,获取名称并在此寻找与该名称相等的<servlet-name>节点,找到相等的节点后,搜寻该节点下面紧邻的<servlet-class>节点,于是获取到了与该地址相对应的类名,借助于ClassLoader加载该类文件,创建对象并调用service()方法,客户端即看到了与该地址匹配的运行结果。 一、404错误产生原因及解决方法 在刚开始进行Web应用开发的时候,经常看见页面出现404这个数字,我们一般会称之为运行产生了404错误。类似于404这个数字,还有可能在页面上看到405、500这两个数字,他们都是服务器执行完客户端的请求以后,返回给客户端的一个关于执行结果的状态编码说明。 如果在运行结果页面中没有看到期待的页面,却看到了404、405、500这样的数字

SpringMVC处理请求释放静态资源的三种方式

廉价感情. 提交于 2020-04-04 04:00:19
方式一 在SpringMVC的配置文件中添加如下语句 <mvc:default-servlet-handler/> 说明:当SpringMVC前端控制器对静态资源进行拦截后,在通过处理器映射器找不到相关处理器的情况下该请求会被tomcat中web.xml中默认配置的Servlet拦截。 方式二 SpringMVC的配置文件中添加指定的目录,使这些路径不经过前端控制器 <mvc:resources mapping="/js/**" location="/js/"/> <mvc:resources mapping="/css/**" location="/css/"/> <mvc:resources mapping="/img/**" location="/img/"/> 方式三 在web.xml中配置所有被前端控制器拦截的请求类型,如所有*.do的请求都被前端控制器拦截 <!--前端控制器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param

[RoarCTF 2019]Easy Java

混江龙づ霸主 提交于 2020-04-04 02:48:57
愿逝者安息,愿生者奋发,愿祖国昌盛 ——2020.4.4 java web的题目近年来也是层出不穷,拿这个题学习一下: 题目一览 一个登录界面,以为是注入,后来知道登录进去也没用: 有个help点进去: 这要是php的话…… 考点:目录泄露 对于Java web来说,也有像 php.ini 这类配置文件可以被泄露,下面系统学习一下: https://www.cnblogs.com/yesec/p/12232045.html 介绍:WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 WEB-INF主要包含以下文件或目录: /WEB-INF/web.xml :Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/ :含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中 /WEB-INF/lib/ :存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件 /WEB-INF/src/ :源码目录,按照包名结构放置各个java文件。 /WEB-INF/database.properties :数据库配置文件

杂谈maven工程实践(3)

妖精的绣舞 提交于 2020-04-03 18:01:34
1、常见应用 maven工程中,主要操作的是pom.xml配置和java开发 java开发:代码&配置文件 pom.xml:管理maven功臣资源、依赖、插件等信息 2、资源管理 包括:jar包的资源管理、工程之家女的关系管理,常用信息的配置管理 资源定义 案例:开发mybatis的测试 定义:需要的jar包 资源来源:http://mvnrepository.com 资源的依赖 测试使用mybatis进行查询 mybatisconfig,xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="com/db/db.properties"></properties> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" />

java常见笔试题

為{幸葍}努か 提交于 2020-04-03 05:24:12
JAVA 相关基础知识 1 、面向对象的特征有哪些方面 1. 抽象 : 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2. 继承 : 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3. 封装 : 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性 : 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2 、 String 是最基本的数据类型吗 ? 基本数据类型包括 byte 、 int 、 char 、 long 、 float 、 double 、 boolean 和 short 。

JavaWeb程序架构模式的演进

点点圈 提交于 2020-04-02 06:38:41
JavaWeb程序架构模式的演进 老一辈的程序员一般都经历了Web程序架构模式的演进,从最开始的在jsp或者jsp+Servlet上做开发,到后来的mvc、三层等。而现在有挺多人学完web,可能都没怎么使用过jsp或jsp+Servlet开发过项目,就直接学习使用Spring、Spring Boot或者SpringMVC等框架进行开发。如果没有经历这样一个逐步演进的过程,就很难理解框架带给了我们什么样的好处,而且开发过程中遇到问题也难以解决,更别说去学习这些框架中的源码了。学习是一个循序渐进的过程,不能急于求成,所以本文旨在简单的聊一聊Web的发展史。 一、web发展简史 以目前Spring Boot作为时间轴的话,web发展的过程大致可以分为以下几个阶段: 1.纯jsp / jsp+Servlet / jsp+JavaBean+Servlet 2.MVC / MVP / 三层架构 3.使用EJB进行分布式应用的开发,EJB是重量级框架,在使用上比较复杂和麻烦 4.由于EJB太重了,于是Spring应运而生,但是Spring在发展上越来越臃肿,所以还是有许多繁琐的配置 5.同样的由于String配置太繁琐,于是Spring boot诞生了,这时就可以体验到 “约定大于配置” 的乐趣 二、web发展初始阶段 1.jsp / jsp+Servlet / jsp+JavaBean