创建JSP文件
创建一个JavaWeb文件然后在WebContent文件夹New一个JSP FIle文件然后打上JSP文件的文件名
并且保证编码为UTF-8
关于<% %>
在<% %>符号中间他在启动是是会被Tomcat解析而不再里面则像HTML文件直接执行
客户端与服务端
客户端 ---->应用服务器---->数据库服务器
客户端:浏览器,手机,等其他应用程序
应用服务器:java的Tomcat,.net的IIS
数据库服务器:数据库信息
jsp实现:在HTML的这个静态页面基础之上实现了跟客户端交互的动态效果.
交互中,经常使用:
1.request.getParameter("值");接受客户端发送的内容
2.response则是用于服务端响应客户端,而作为响应对象,response又分为两种响应:
A.输出内容(比如直接输出一个错误信息){而输入内容又分为HTML,json}
B.跳转(比如直接响应一个错误的页面)
如何不打开Eclipse运行web文件
在web项目上右键项目打开Export点击WAR-File
Destionatio:保存到的路径
在下面的两个选项中
Export source files:导出源码,源码在classes目录下
OVerwrite existion file:覆盖已经存在的文件
在解压了文件之后产生一个war文件,把war文件放到Tomcat的webapps目录下,
然后出去打开bin目录下的startup.bat文件双击打开,
然后就自动启动tomcat,
这样就不用打开Eclipse应用程序就可以打开web文件了,不用的时候关闭双击shutdown.bat就可以了
"注意:要配置好JAVA_HOME不然双击没用"
关于JSP实现了静态的HTML中,插入了动态的代码是 真的好吗?
答案是非常不好的(具有高度的耦合).
在servlet:在动态的代码中,插入静态HTML:
PrintWriter out = response.getWriter();
out.println();
out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
out.println("<title>Insert title here</title>");
out.println("</head>");
out.println("<body>");
//<%=new java.util.Date() %>
out.println("<font size=\"7\">"+new java.util.Date()+"</font>");
//out.println("<font size="7"><%=new java.util.Date() %></font>");
out.println("</body>");
out.println("</html>");
总结:
1.jsp跟servlet没有本质上的区别.
2.在jsp中的HTML代码,例如<html>,会自动变成out.print("<html>"),这一个过程是全由Tomcat替程序员完成,在早期编写代码的时候是手动打out.print()的
3.PrintWriter out=response.getWriter();
在servlet中,out对象其实是来自于response对象,而在jsp中也是可以使用response.getWriter(),但是jsp其实已经内置out对象,所以在jsp中不用写PrintWriter out=response.getWriter();
4.jsp中一共预先定义了9个这样的对象,分别是request,response,session,application,out,pagecontext,config,page,exception(考试会考)
但是日常基本99.99%只用reques,response,out,session
sessio对象:
因为http协议是无状态的,所以每次访问后,链接都会断开,所以可以使用session对象获得之前链接的信息
session一般用于:登录
json
1.单个对象{}
2.单个对象中,里面包含多个对象{"name":"张三","sex":"男"}
3.多个对象[{},{},{}],这个是一个对象数组,里面有三个{},所以包含了三个对象