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”);