JavaWeb(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)
1Jsp:动态网页
静态、动态
1.不用 和 是否有“动感”混为一谈
2.是否 随着 时间、地点、用户操作 的改变而改变
动态网页 需要使用到 服务器脚本语言(Jsp)
2架构
CS:Client Server(客户端 服务端)
CS:不足:
a.如果软件升级,那么全部软件都需要升级
b.维护麻烦:需要维护每一台 客户端软件
c.每一客户端 都需要安装 客户端软件
BS:Broswer Server(浏览器 服务端)
客户端可以通过 浏览器直接访问服务端
注意:bs和cs各有优势
3.tomcat解压后目录:
bin:可执行文件(startup.bat shutdown.bat)
conf:配置文件(server.xml)
lib:tomcat以来的jar文件
log:日志文件(记录出错信息)
temp:临时文件
webapp:可执行的项目(将我们开发的项目 放入该目录)
work:存放由jsp翻译成的java,以及编辑成的class文件(jsp->java->class)
4.配置tomcat
a.配置jdk(必须配置JAVA_HOME)
java_home classPath path
b.配置catalina_home
双击bin/startup.bat启动tomcat,
常见错误:可能与其他服务的端口号冲突
tomcat端口号默认8080(这个端口较为常见,容易冲突),建议修改此端口
修改端口号-》conf/server.xml文件,第70行左右
5.访问tomcat
我们的项目都存放在webapp文件夹中,打开localhost:8080默认访问的是ROOT文件夹,如果要访问那个文件,就加一个文件夹名.
200:一切正常
300/301:页面重定向(跳转)
404:资源不存在
403.权限不足(如果访问a目录,但是a目录设置 不可见)
500:服务器内部错误(代码写错)
其他编码:积累
1.使用myeclipse创建tomcat项目
打开myeclipse后需要关联tomcat,windows-》preferences-》server-》tomcat 8x,JRE(jdk包含jre);并且面板里面配置。
2.在eclipse中创建的web项目:
浏览器可以直接访问webcontent中的文件,例如http://localhost:8080/MyJspProject/
其中的index1.jsp就在WebContent目录中:
但是WEB—INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问
注意:eclipce创建的目录结构中WebContent映射为tomcat目录结构的http://localhost:8080
注意:并不是任何的跳转都能访问WEB-INF,原因是 跳转有两种方式1:请求转发(y)、重定向(f)
3.配置tomcat运行时环境
jsp<-->Servlet
a.将tomcat/lib中的servlet-api.jar加入到项目的构建路径
b.右键项目-->Build Path -->Add library -->Server Runtime
4.部署tomcat
在servlet面板 新建一个tomcat实例 ,再在该实例中部署项目(右键 ->add)之后运行
注意:一般建议将eclipse中的tomcat与本地tomcat的信息保持一致,将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例后双击该实例,选择Server Localtion的第二项
5.统一字符集编码
a.编码分类
设置.jsp文件的编码(.jsp文件中的pageEncoding属性):jsp-->java
设置浏览器读取jsp文件的编码(jsp文件中content属性)
一般将上诉设置成一致的编码,推荐使用utf-8
文本编码:
i.将整个eclipse中的文件统一设置(推荐)
ii.设置某一项目
iii.设置单独文件
6.jsp的页面元素:
a.脚本Scriptlet
i.<% 局部变量/java代码%>
ii.<%! 全局变量 %>
iii.<%=输出表达式%>
一般而言,修改web.xml、配置文件、java 需要重启tomcat
但是如果修改Jsp\html\css\js,不需要重启
注意,out.println()不能回车;要想回车:“<br/>”,即out.print() <%= %>可以直接解析HTML代码
b.指令
page指令
<%page .....%>
page指令的属性:
language:jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp
java注释// /**/
jsp注释<%------%>
7.JSP九大内置对象(自带的,不需要new,也能使用的对象)
out:输出对象,向客户端输出内容
request:请求对象:储存“客户端向服务端发送的请求信息”
request对象的常用方法:
String getParameter(String name):根据请求的字段名key(input标签的name属性),返回字段值value(input标签的value属性值)
String [] getParameterValues(String name):根据请求的字段名key,返回多个字段值value (checkbox)
void setCharacterEncoding("编码格式utf-8"):设置请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为utf-8)
getRequestDispatcher("b.jsp").forward(request,response):请求转发的方式跳转页面A ----->B
ServletContext getServerContext():获取项目的ServletContext对象
示例:
注册 展示
response
pageContext
session
application
config
page
exception