Java开发 :服务器 Tomcat,开发工具:Eclipse 数据库:MySQL
一、软件开发的程序分C/S结构和B/S结构两种
C/S结构 叫客户端服务器,需要在电脑中进行安装的软件(QQ,微信的PC,酷狗,Offic办公软件,暴风影音)
B/S结构叫浏览器服务器,不需要在电脑上安装,软件是运行在服务器上,用户通过浏览器进行访问。(淘宝网站,12306网站,当当网,网易,新浪,QQ空间…)
B/S 结构在电脑的浏览器地址栏上输入一个网址(域名),回车,浏览器这个软件会根据这个域名去找到互联网上这台对应的服务(电脑),服务接收到请求后,做出相关的响应。如果这个请求没有特殊要求,则默认返回这个网站的首页给客户端浏览器。你就可以在浏览器上看到网页…
B/S结构工作原理:
注意: 服务器返回给客户端浏览器的数据只能是:(html,css,JavaScript)因为浏览器这个软件只能解析这些内容,如果返回Java代码,PHP代码,C#代码,浏览器没办法解析。
网址:URL,统一资源定位符 URL中的?是与后面的参数进行分隔,参数如果有多个,则用 & 分隔。
网站运行在服务器上,Java应用支持服务器常用是Tomcat。Tomcat是一个轻量级的服务器,开源,稳定,占用资源少。是JavaWeb项目开发的首选。
Tomcat 安装有两种版本,安装版和解压版。
Tomcat 安装后目录如下:
运行bin目录下的startup.bat就可以运行服务器,有一个命令提示符,不能关闭,如果关闭则服务停止。
服务器启动后,打开浏览器,输入:localhost:8080 检测
Tomcat服务器的conf目录是存放服务运行时的配置文件。
server.xml
二、JSP
Jsp(Java server pages) 是运行在服务器端的Java页面,采用Html嵌套Java代码一个Jsp后缀的文件,客户端在第一次请求这个页面时,服务器端才会编译这个页面,生成一个页面类的Java源文件,并再编译成 .class字节码文件,存储在Tomcat服务器的work这个目录下,不会销毁,便于第二次访问这个页面,所以第二次访问比第一次快。再编译时就执行嵌套的java代码,并生成html,再返回给客户端的浏览器。
Jsp 页面创建后,在页面的前面有一个指令,这个指令可以有多个,但必须在最前。
如果页面打开时编码不是UTF-8,处理方法:
<%@page import="java.util.List"%>
导入页面中所使用的类的所在包。
<%=etc %>
注释:
在jsp页面上有3种注释:
1.<!-- 这种叫html 注释,在页面源文件中可以看到 -->
2.在小脚本中可以用 // 注释,这种注释在页面的源文件中不能看到
3.在小脚本中可以用
/*
这是多行注释,在页面的源文件中不能看到..
*/
编码规范包括:命名规范,格式规范。 有一定的注释。注释的要求,在类前及方法前必须加注释,在方法中的关键处必须加注释。
三、开发JavaWeb项目在Eclipse中
项目创建后,目录如下:
程序中的静态资源都放在WebContent目录建立一个特定的目录来存放,网站的后台管理页面也通常建立一个目录下存放,或放在WEB-INF目录下。
部署运行项目到Tomcat服务器中。
在Tomcat服务的webapps目录下有项目,
在Tomcat服务器的work目录下有Jsp页面生成的.java文件和.class文件
四、JSP页面上的内置对象
在JSP页面中已经默认创建了一些对象,这些对象可以使用,所以叫内置对象。内置一共有9个,分别有不同功能,常用的对象有5个(下面的前5个)。
out,request,response,session,application,config,page,pageconfig,exception
out对象: 用于输出。同等于<%= %>
request对象: 叫请求,客户端向服务器端发送请求,同时,它也是一个作用域,可以存储数据在里面。但是数据存储的生命周期只是对这一次请求有效。新的请求产生,则数据销毁。
response对象: 叫响应,服务器对客户端的输出。
session对象: 会话,客户端所有请求的集合。默认时间是30分钟,但是可以在Web.xml配置文件中进行设置。时间的计算以最后一次为基准。当服务端接收到一个客户端的请求过来,则服务器会为这个客户端创建一个会话ID(SessionID 是一个32位的16进制数据),这个ID会在客户端与服务端来回传送。Session 也是一个作用域,可以为每个客户端存放数据,并且是相互独立的,会话之间不能相互访问。存储位置在服务器端。浏览器关闭,会话失效,但是在服务端的Session空间不会立即销毁。要等到Session默认时间到之后,才销毁服务器端的空间。
application对象: 全局使用域,一个程序中只有一个,在应用程序启动时,就创建此作用域,这个作用域所存储的数据所有的客户端都可以访问到。在开发中通常用于统计在线人数,或网站访问量。
**exception:**此对象是存储错误信息的对象,要使用的话,需要在 page 指令上添加属性:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true" %>
Session会话的相关方法:
JSP 页面数据传递
<%
String name = request.getParameter("userName");
out.print("用户名:"+name);
String pwd = request.getParameter("pwd");
out.print("密码:"+pwd);
%>
<%
request.setCharacterEncoding("utf-8"); //解决请求时参数中文乱码问题
response.setCharacterEncoding("utf-8"); //解决服务器端响应给客户端中文乱码问题。
String name = request.getParameter("userName");
out.print("用户名:"+name);
String pwd = request.getParameter("pwd");
out.print("<br/>密码:"+pwd);
//取url?后面的参数值
String id = request.getParameter("id");
out.print("<br/>ID:"+ id);
%>
五、中文乱码的解决:
在Java开发中,中文乱码比较常见,同时,出现乱码的问题的地方也比较多。
请求响应时的中文乱码问题解决方案:
request.setCharacterEncoding("utf-8"); //解决请求时参数中文乱码问题
response.setCharacterEncoding("utf-8"); //解决服务器端响应给客户端中文乱码问题。
Tomcat服务也有中文乱码问题解决方案,在server.xml 配置文件中: URIEncoding=”utf-8”