初入javaweb需要知道的几个小知识点
Jsp动态网页
静态、动态:
1、不能和是否有“动感” 混为一谈
2、是否随着时间、地点、用户的操作的改变而改变
动态网页 需要使用到 服务器脚本语言(JSP)
BS与CS架构
CS:Client Server
客户机与服务器(Client/Server,C/S)
架构的主要特点是交互性强、具有安全的存取模式、网络通信低、响应速度快和利于处理大量数据。基于C/S架构开发的软件针对不同的操作系统具有不同的版本,因此其开发与维护成本相对较高。
举例:手机qq 微信
- cs不足:
a.如果软件升级,那么全部软件都需要升级
b.维护麻烦,需要维护每一台,客户端软件
c.每一台客户端 都需要安装客户端软件
BS:Broswer Server
浏览器/服务器(Browser/Server,B/S)架构是随着Inter技术的兴起对C/S架构进行改进以后的架构。在这种架构下,用户界面完全是通过浏览器实现,一部分事务逻辑在前端实现,但主要事务逻辑在服务端实现。
- BS 优点
客户端可以通过浏览器直接访问服务器
举例:网页版天猫 淘宝
注意:bs和cs各有优势
tomcat web容器
(1)tomcat解压后目录
**bin**:可执行文件 (startup.bat shutdown.bat **conf**:配置文件 (server.xml) **lib**:tomcat依赖的jar文件 **log**:日志文件(记录出错等信息 **temp**:临时文件 **webapps**:存放tomcat可执行的项目(将我们开发的项目放入该目录) **work**:存放由jsp翻译成的java,以及编辑成的class文件 Jsp -> java ->class(2)配置tomcat
A.配置jdk (必须配置JAVA_HOME)
Java home classPath path
B.配置tomcat (CATALINA_HOME
大小写无所谓Tomcat根目录)
双击bin/startup.bat 启动 tomcat,
常见错误:可能与其他服务器的端口号冲突
tomcat端口号默认8080(此端口号较为常见,容易冲突),建议修改此端口号(8888)
修改端口号:
Service.xml 七十行左右,把“port=8080”改成8888
(3)访问tomcat
Http://localhost:8888/
常见状态码:
200:一切正常
403:权限不足(如果访问a目录,但是a目录不可见)
404:资源不存在
300/301:页面重定向(跳转)
500:服务器内部错误(代码有错)
其他编码:积累
Jsp:在html中嵌套java代码
在项目/WEB-INF/web.xml中设置 默认的访问页面
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
配置虚拟路径
将web项目配置到webapps以外的目录
webapps本身就是虚拟路径
第一种方法
在config配置目录下的server.xml配置文件里
<Englihe name=”Catalina” defaultHost=”localhost”>
下有:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
//本身已经存在虚拟路径webapps
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
//配置其他的虚拟路径:
<Context dacBase="" path="/JspProject" />
//path="":虚拟路径 (绝对路径【D:\...\...\apache-tomacat-8.5\webapps\Jspproject】、相对路径【/JspProject相对于webapps】)
//dacBase="":实际路径【运行项目的绝对路径】
//path虚拟路径映射dacBase实际路径,浏览器发送path(localhost:8080/JspProject/index.jsp)给服务器,服务器按照path来寻找项目的实际路径
</Host>
这种方法需要重新启动服务 !!!
第二种方法
在config目录中,点击Catalina文件,新建项目名.xml
在里面写第一种方法的<Context …/>
把文件改成ROOT可以在访问时不写项目名,直接写访问的页面
(不推荐这种方式)
这种方法不需要重新启动服务 !!!
虚拟主机:
通过www.test.com访问主机
打开配置文件server.xml
在Engine 下面 配置 <Host >标签</Host>
A.
<Host appBase=”项目的实际位置” name=”www.test.com”>
<Context docBase=”真实的路径” path=”/” />
</Host>
最后去上面
<Engine name=”CataLina” defaultHost = “改成www.test.com”>
B.
修改本地hosts文件
增加映射
127.0.0.1 www.test.com
C.
把端口号改成80访问时可以默认不写端口号
JSP执行流程:
第一次访问:服务器将jsp文件翻译成java文件,再将java编译成class文件
第二次访问:直接访问class文件
(如果服务端代码修改了,将会再访问时重新编译)
Jsp -> java(servlet文件) ->class
Jsp和servlet可以相互转换