javaWeb其实就是一种B/S架构,B/S架构是基于请求/响应的交互模式
其架构工作流程:
·客户端用户输入
·发送用户请求信息
·服务端(应用服务器+数据库服务器)
·返回给客户端
B/S架构与C/S架构的区别
·硬件环境
·软件安装与升级维护
·安全性
接下来让我们看看Tomcat的目录结构
对于创建web项目这个就不演示了,大家要知道的是web程序常
404错误——找不到访问的页面或资源
500错误——JSP页面代码有误
页面无法显示——未启动Tomcat
对于java程序员来说,经常接触的一般是jsp页面,那么前端页面中的html与js是否偶尔也会混淆呢?
JSP页面包括Html、js、java代码
JSP页面运行在服务器端;Html、js运行在客户端
Html负责页面结构和UI;JSP负责数据的动态展示
·page指令
<%@ page language=”属性值” import=”属性值” contentType=“属性值”%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function button01(){
<%
String temp = "黑猫代码";
out.print("alert('button01 click');");//out.print的引号里必须是完整的js代码
out.print("document.getElementById('text1').value='"+temp+"';"); //out.print的引号里必须是完整的js代码
//session.invalidate();
%>
}
function button02(){
<%
out.print("alert('button02 click');");//out.print的引号里必须是完整的js代码
%>
}
function load(){
alert("load");
document.getElementById("button02").onclick = button02();
}
</script>
</head>
<body onload="load();">
<input type="text" id="text1" value=""/>
<input type="button" value="按钮01" onclick="button01();"/>
<input id="button02" type="button" value="按钮02" />
<!-- 这种方式较为常用,因为以后学习jquery框架的时候都是这种方式。代码整洁,上面这些提取出来的function可以放在js文件里。 -->
</body>
</html>
JSP执行原理:翻译(java)——编译(class)——执行
一次编译,重复请求时,不用重新编译
JSP声明变量和方法
<% java代码 %> <% out.print() %> <% out.prntln() %>
以下演示一个jsp案例
<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%--局部变量和全局变量 --%>
<%int i = 10;
/当前系统时间/
Date today=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
String str_today=simpleDateFormat.format(today);
%>
<%!
int j = 10;
public int add(){
return 5+9;
}
%>
i++; <%= i++ %><br/>
j++; <%= j++ %><br/>
<%= add() %><br/>
<% out.println("当前系统时间:<br/>");%><%=str_today %><br/>
</body>
</html>
其运行结果如下所示
在jsp中还有一个知识点是大家经常忽视的,那就是转发和重定向
·转发:服务器端行为,一次请求(200)
1、request.getRequestDispatcher(“url”).forward(request,response)
2、<jsp:forward page=”url”/>
·重定向:客户端行为,两次请求(302,200)
1、response.sendRedirect(“url”)
当然还有三个对象要说一下:
字符编码格式统一
·jsp页面编码统一设置成UTF-8
设置请求、响应的编码格式(post)
·request.setCharacterEncoding(“utf-8”);
get请求(tomcat iso-8859-1)
·治标:new String(“中文”.getBytes(“iso-8859-1”),”urf-8”);
·治本:URIEncoding
=“UTF-8”/useBodyEncodingForURI=”true”;
转码、解码
·java.net.URLEncoding.encode(“中文”,“utf-8”);
·java.net.URIDecoder.decode(“中文”,”utf-8”);