Java Web不能不懂的知识

1、传说中java的class文件可以一次编译到处运行,那么源代码采用GBK还是UTF-8会有影响么?

不会有影响。

因为Java源代码通过编译后,生成的class文件为字节码。它可以被看作是包含一个执行程序的二进制文件,需要在JVM进行执行。

而GBK、UTF-8等为字符编码格式,针对的是字符,如Java源代码。

2、如果lib有2个不同版本的jar,例如spring2.5,spring3,还能安心干活么?

可能会引起jar包冲突。

Tomcat下Jar包加载顺序:

1. $java_home/lib 目录下的java核心api 

2. $java_home/lib/ext 目录下的java扩展jar包

3. java -classpath/-Djava.class.path所指的目录下的类与jar包

4. $CATALINA_HOME/common目录下按照文件夹的顺序从上往下依次加载

5. $CATALINA_HOME/server目录下按照文件夹的顺序从上往下依次加载

6. $CATALINA_BASE/shared目录下按照文件夹的顺序从上往下依次加载

7. 我们的项目路径/WEB-INF/classes下的class文件

8. 我们的项目路径/WEB-INF/lib下的jar文件

在同一个文件夹下,jar包是按顺序从上到下依次加载
由ClassLoader的双亲委托模式加载机制我们可以知道,假设两个包名和类名完全相同的class文件不再同一个jar包,如果一个class文件已经被加载java虚拟机里了,那么后面的相同的class文件就不会被加载了。

3、如果classes有个class文件不小心被打到jar包去,遗忘在lib目录,以后更新classes会不会炸了?

不会有影响,因为class文件会先加载。当新的class文件更新至classes文件夹内以后会被先读取。

4、log4j.xml放到conf目录会有问题么? 有什么区别没有?

log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件,加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,在build Path中设置下就好了。

读取路径改为:

PropertyConfigurator.configure("config/log4j.properties");

5、有人写了个Niubility的类放在yy.war, 为什么我就调用不到呢,明明同一个猫上跑的?

Tomcat不支持跨应用调用类,但是允许跨应用访问数据。在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问。

6、听说有servlet3支持异步可厉害了,但放个demo到tomcat6会挂了,我lib明明有高大上的servlet-api.jar?

7、听说web.xml里边可以配置监听器listener,但它监听什么?

Servlet的监听器Listener,它实现了javax.servlet.ServletContextListener 接口,由服务器端程序实现相关业务逻辑,包括做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。也就是说,它能捕捉到服务器的启动和停止,在启动和停止触发里面的方法做相应的操作!

它必须在web.xml 中配置才能使用。

web.xml 的加载顺序是:context-param -> listener -> filter -> servlet

8、为什么不建议把jsp放在war的根目录下?

因为war的根目录下文件可以直接通过url直接进行访问。那么用户可以在不具备权限的情况下,可以对jsp文件进行访问,看到部分相关内容。

原文地址:https://www.cnblogs.com/liuyp-ken/p/10192255.html

时间: 2024-10-09 23:04:24

Java Web不能不懂的知识的相关文章

Java Web -- Servlet(1) 必备知识

学习Java WEB开发必备的基本概念: 1.WEB 本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思.现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体(hypermedia).超文本传输协议(HTTP)等. 2.静态网页(可简单理解为html) 是指网页的内容是固定的,不会根据浏览器者的不同需求而改变.(实实在在保存在服务器上的文件) 3.动态网页 是指在接到用户访问要求后动态生成的页面,页面内容会随着访问时间和访问者发生变化(并不是独立存在于服务

Java web struct入门基础知识

1.Struts2的前身是Opensymphony的Webwork2,实际上Strut和Webwork2合并后形成Struts2. 2.一个HelloWord示例 1)创建Web应用,所需要的Jar包为: 2)配置Struts2 在web.xml文件中配置如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee&

java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web开发的知识点串联起来,学会综合运用. 对于初学者而言,代码示例是最好的教材,可能一遍看不懂,就多看几遍,相关知识点,如果本教程介绍的清楚的,请自行百度相关知识,或请教师友. 本项目采用的技术栈为: 0.简单html页面,无css,重在揭示servlet和数据库访问技巧 1.servlet 2.jsp

java web (j2ee)学习路线 —— 将青春交给命运

RESON TO DO JAVA WEB:1.JAVA WEB(企业级)  2.Android和iOS过于火爆并且不兼容 一.JAVA WEB开发需要的知识储备 1.      基本的网页设计语言:HTML.JavaScript.CSS 2.      制作动态网站:Java.JSP(servelt) 3.      数据库:MySQL.SQL Server.SQL Lite.Access.Oracle 4.      流行的框架:MVC思想和原理——了解Struts.Spring.Hibern

java面试题全集(中)--Java Web和Web Service相关面试题

这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet. 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程

java web的开发 知识要点

近期闲下来时写的一个有关 java web的开发 的 常用架构 的总结,用于初 学 者或团队新人培训. Java开发初步.ppt SSH  为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架 SSI   为 Strtus2.Spring.iBatis java web的开发 知识要点

Java Web基础知识之Filter:过滤一切你不想看到的事情

不要相信客户端, 所以做后端的人都应该铭记的事情.因为前端传过来的数据并不总是合法和有效的,所以后端是对访问资源的最后一道保护伞.之前我们在Spring中说到过AOP编程,AOP基础知识,它就可以在执行我们的方法之前进行一些预处理和验证来保护后端的资源.不难想到她的实现方式和本篇要说的过滤器的实现原理应该是相同的,都是通过Java的动态代理实现的(自己的理解). 在Java Web的开发中,过滤器用于拦截请求,并对ServletRequest对象进行处理,我们可以想到的,它可以用来验证权限.加密

Java Web知识梳理

今天给内部做了个培训,貌似搞错了对象,不该对新人讲这么原理性的东西. anyway,还是放上来吧,不知道有没有人能理清其中的逻辑 ^ _ ^ 问题:为什么要用tomcattomcat: servlet containerservlet + container web的基础是什么? 网络编程:链接.数据 链接:Socket/ServerSocket 数据:InputStream/OutputStream Stream 数据是什么?网络中传输的Bits! 但是,Bits不是我们想要的,我们想要的是信

Java Web架构知识整理——记一次阿里面试经历

惭愧,从一次电面说起.我个人在某国企做一名软件设计师,国企大家都懂的,待遇一般而且没啥意思,做的方向基本都是操作系统.驱动和工具软件的开发,语言基本都是C/C++.最近也想跳槽,刚好有幸得到了一次阿里的面试机会,于是就试了试. 首先是电话面试,当时正在上班,人多口杂,好不容易找了个没人的地方开始面试.面试的方向是Java Web,面试官很nice,跟朋友一样,一开始问了些比较基础的东西,比如hashmap/hashtable的区别和优缺点,我答得还行,而且对于原理的东西还算讲的比较透彻. Jav