1.B/S:Broswer-Server
1.B/S的 优点:
1.客户端无需安装客户端程序
2.页面开发周期较短
2.C/S:Client-Server
1.Client:安卓、IOS、PC上的程序
2.C/S架构的 缺点:
1.对客户而言:需要安装客户端
2.对开发人员而言:客户端程序开发难度较大,周期较长。
3.服务器资源:
1.静态资源:.html .css .js 各种图片 非流媒体的视频/音频 等文件
静态资源在客户端访问时会下载到其本地进行执行
2.动态资源:程序 java程序 php程序 .net程序
4.服务器:
1.服务器程序:存放服务器资源的一个程序,可供外界访问
2.服务器程序功能:
1.容器:存放服务器资源的容器
2.能够接受客户端请求,让客户端能够访问服务器资源
5.常用的服务器:
1.Apache开源基金会 mybatis
2.Apache基金会有一款服务器软件Apache
3.IIS:微软web服务器 .net
4.Ngnix:反向代理服务器,负载均衡
6.Apache服务器的功能:
静态资源web容器
本身不能够运行java程序(jsp+servlet),
但可以通过安装Servlet应用服务器来实现运行java程序
7.Servlet应用服务器:能够运行Servlet程序的服务器
Servlet就是一个类,能够接受用于请求
8.常用的Servlet应用服务器:
Tomcat Jetty:只是Servlet应用服务器
JBoss Websphere Weblogic:JAVAEE应用服务器
9.Tomcat/Jetty:Servlet容器
存放Servlet/JSP的一个容器+静态资源,
Tomcat也可以接受用户请求,近似的看成一个服务器
10.localhost:8080:
1.访问tomcat首页
404:资源未找到NotFound
2.产生404的原因:
1.资源真的不存在
2.url错误
3.拒绝访问
11.web工程
1.webContent:
2.web-inf:
3.lib:放第三方jar包
4.web.xml:web工程主配置文件
5.注意:
静态资源或者页面如果放到web-inf无法直接访问,但可间接访问
12.放到webContent根目录或者子文件夹下的页面+静态资源可以直接访问
13.JSP:Java Server Page
1.JSP的运行机制?
1.JSP本质上是一个Java类(Servlet),也需要编译
2.JSP在客户端第一次访问该页面时,由web服务器先解释为.java,然后再编译为.class
3.如果没有修改JSP页面,JSP页面不会重新编译
编译一次,运行多次
4. 1.缺点:
因为JSP也需要编译,所以第一次访问时加载速度略慢。
2.优点:编译一次,运行多次
=======================================================================================
2.JSP里能写什么?
1.
1.HTML:直接写到jsp中
2.CSS:直接写到jsp中
3.JS:<script></script>
JSP中可以前端代码,但服务器不会解析,在客户端请求JSP时,会原封不动地把前端代码发送到客户端,由客户端浏览器解析(out.write("前端代码"))
2.Java代码:
<% %>:属于java部分,会解释到java类中
<% %>不能写前端代码
3.Java小脚本:
<%...%>
1.声明局部变量
2.可以编写逻辑语句
3.可以调用方法,但不可声明方法
3.Java表达式:向页面输出数据
<%=变量名、对象名%>
<%=方法名()%>
只能用来调用变量或者方法,不能编写逻辑语句或者声明语句
4.向页面输出数据:
1.Java表达式
2.out.print()/println();
5.Java方法声明/声明全局变量:
1.<%! 方法声明 %>
2.注意:
<%...%> <%!...%>都可以声明变量,但作用域不同
<%...%>:声明的是局部变量(方法体中的变量)
可以在别的java小脚本或者java表达式使用
<%!...%>:声明的成员变量,在整个页面可用
6.JSP注释:
<!-- -->:注释会发送到客户端
<%-- --%>:只在服务器端可见
7.JSP指令标签:
<%@page%>:
contentType:告诉浏览器以何种编码解析页面
pageEncoding:设置JSP的页面的编码
import:导包
8.JSP内置对象:可以在JSP中直接使用的对象
out:用于向页面输出数据
out.print(Object)
out.println(Object):输出到页面后,换行变成了空格
out.println/print(Object + "<br>");
out.write(String)
*9. WEB-INF:受保护资源,仅限于服务器内部访问,不能通过客户端直接访问
1.http://localhost:8080/myjsp/registOK.jsp
2.http://localhost:8080/JSPdemo1/myjsp/registOK.jsp
3.注意:
1.应用名后默认添加/:
WebContent
页面跳转默认使用的相对路径:
相对WebContent的路径
2.在跳转路径前加/:
/应用名
/myjsp/xxx.jsp
/myjsp/xxx.do
相对最后一个/的路径
/myjsp/跳转的url
10.URL错误 404
http://localhost:8080/myjsp/registOK.jsp
这里把myjsp当成了应用名
11.如何获取表单提交后的数据:
1.通过jsp的request内置对象获取
1.request:一个客户端请求对应一个request对象
request对象封装了客户端的请求数据
不同的请求,对应不同的request对象,request对象之间的数据不共享
2.对表单而言,请求参数名:name属性值
String:request.getParameter("请求参数名")
只能获取单个值
3.String[]:request.getParameterValues("请求参数名")
获取多个值
4.注意:
前端提交到后端的数据,默认String类型,
根据需求需要进行类型转化
2.通过Servlet/控制器框架
1.500:Java代码错误
2.解决post请求中文乱码问题:
request.setCharacterEncoding("utf-8");
3.表单的method="post"
4.get
1.get请求:
a标签、
location.href
2.如何通过get请求发送请求参数:
在url后添加 ---> ?
<a href="myjsp/registOK.jsp?请求参数名1=请求参数值1&请求参数名2=请求参数值2..."></a>
4.request.getParameter():
1.如果请求参数名写错,返回值为null
2.如果请求参数名正确,但页面未赋值,返回为""
if(request.getParameter("age")!=null
&& (!request.getParameter("age").equals("")))