Java Web开发学习

第一天,配置服务器

tomcat 汤姆猫
就是 web服务器
常见的有CGI ASP PHP JSP/Servlet
由于 jsp是以线程方式运行,所以效率比较高。
安装tomcat ,然后运行。
注意几点,早期的版本启动有两种
在dos下找到bin安装路径后,运行
startup  开始
shutdown  结束

catalina start 开始
catalina stop 结束
现在的版本启动都是直接在bin下运行 tomcat6w.exe
如果启动出错:
老版本  catalina debug 然后打 run
新版本  logging 里面选debug
这个方法可以看到出错的地方
tomcat安装后的文件内容:
bin  启动的脚本程序
common/lib  jar文件--sun提供标准,其他厂商提供jar服务
common 主要放置catalina本身和web应用可以加载的类目录的文件
conf  装tomcat的配置文件 xml
logs  日志目录 tomcat启动过程出错过程的日志
server 服务器目录
shared 应用程序的目录,tomcat不能用
webapps web应用程序
work  tomcat工作目录 存放jsp class文件
temp  存放临时产生的文件

conf 文件
web.xml    web应用程序配置文件
server.xml 服务器配置文件   端口配置
user.xml   定义了tomcat用户信息  安全上的管理,主要是访问后台
打开服务器页面。
http://localhost:8888/         注意端口自己定义,这里是8888,默认是8080。
点 Tomcat Manager 进入管理界面
提示输入用户密码。
新版本,在安装的时候就要求你设置用户名和密码,按照当初设置可以进入。
老版本使用,如果点进后出现 403错误,代表没有权限访问。注意:404是页面不存在。500服务器出错
解决:
user.xml 下,修改访问权限。
第一步要添加访问角色。按照<role rolename="tomcat"/>方式,自己多写一个,当然角色名改其他的,如manager
第二步,在<user username="tomcat password=......>不写了,最后添加刚建的角色名。如下写法:
"tomcat , manager"/>

第二天,运行服务器

符合j2ee标准的 web服务器 就是一个目录
WEB-INF 目录
     web.xml   web配置文件
     lib       web的库文件
     classes   存放编译好的库文件
META-INF 目录   存放web信息      
服务器配置.
在webapps里面,创建一个文件夹,文件夹里面在创建文件夹,取名WEN-INF.
这个文件夹是服务器配置文件.里面存放web.xml
关于web.xml可以先找其他的web.xml配置方式复制一份,切除不需要的.
如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
    version="2.5">
</web-app>

把页面文件放在WEN-INF文件夹旁边,这样就可以通过tomcat访问了.
同样也可以自己创建一个文件夹,把页面文件方里面,同样可以通过服务器访问.

j2se 是 jdk5 提供的 .
j2ee 是 j2ee的帮助文档提供的.

servlet有自己的jar包.
老版本的在  common 文件夹下的lib文件夹下
新版本的在  tomcat 下的lib文件夹下
添加到Eclipse
创建一个空项目,然后 鼠标右点项目名,选构建路径,添加外部归档

好,创建一个java类.开始编写servlet:
先说下httpservlet类 专门给web使用的servlet.

在这个类下面有许多方法.
doHead 不想拿到服务器传给我的内容,只想拿到头信息.目的就是比较本地页面和远程页面是否一样.
doGet  直接在网址上直接敲地址就是 doGet请求方式
doPost 在浏览器上有提交按钮,并且请求方式是doPost.

开始编写java代码.
首先继承HttpServlet.通过编译器引入头文件和覆盖实现方式,选doGet来说下.
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
这个就是自动 引入的方法.
HttpServletRequest 就是 封装了 客户端 到 服务器端 一系列 参数的请求
HttpServletResponse 就是 封装了 服务器端 发送 给 客户端 的一系列参数的反馈

第三天 servlet服务器原理

为了使得java编译出来的class文件,能在web页面访问到.
必须对web.xml访问路径做下修改.
编写web.xml内容
仿制其他案例的写法,如下
    <servlet>
        <servlet-name>zzj</servlet-name>
        <servlet-class>helloworld</servlet-class>
    </servlet>
   
    <servlet-mapping>
        <servlet-name>zzj</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
   
    这里,helloworld代表编译的class文件名.
  第一个 zzj,代表这个文件名的别名.
  利用这个别名,第二个zzj必须和第一个一样.
  最后一个/HelloWorld,必须以/开始,后面就是连接地址,可以随便取
  
  
  servlet生命周期
  加载   classloader
  实例化 new自己的对象
  初始化  调用init方法,一般掉有参数的那个ServletConfig来调用
  处理请求  doGet方法或doPost方法
  退出服务  destroy方法
  
  由于servlet只有一个对象.所以只能new一次,也就是不能两次初始化init
  
  GenericServlet 是所有serlvet的主接口
  用于Http的servlet编程都通过继承javax.servlet.http.HttpServlet实现
  请求处理方法:
  doGet   处理doGet请求 参数名跟在地址后面
  doPost  处理doPost请求  参数不跟在地址后面
  doPut  准备往服务器上放东西
  doDelete 准备删除服务器上的东西
  doHead  只请求http的头信息
  doOptions  对webserver进行配置
  doTrace  进行跟踪调试用
   
Cookie 客户端中的一块内存,记录一些服务端的信息.
Cookie 服务器发送给客户端的一个文件,他负责记录客户访问服务器的页面内容.
cookie分两种,一种设置了最大时间,也就是生存周期.还有一种没有设置最大时间.
没有设置的,在窗口开,就有,窗口关就没有了.属于窗口的
Cookie cookie =new Cookie("");
服务器端对象 response.addcookie(cookie);
有设置时间的,他可以记录在文件里.属于文本的.
Cookie cookie =new Cookie("");
cookie.setMaxAge(36000);//代表10个小时
服务器端对象 response.addcookie(cookie);
对于读取Cookie,一个servlet/jsp设置的Cookies能够被同一路径或者子路径的servlet/jsp读到.父类路径不能读
这里的(路径==url)

Session 服务器中的一块内存.记录一些信息,并发送给客户端,来比较是否同一个页面.
Session 的实现方式两种
通过Cookie实现和url实现
Cookie方式:浏览器支持Cookie方式
访问服务端时候,服务端会创建一个Session ID并且保存到你客户端的Cookie里面.
简单测试,通过页面刷新,看看Session ID是否变化.由于没有禁止Cookie方式,那么Session ID给了值就不会再创建了.
如果浏览器不支持Cookie方式
可以用url重写方式来操作Session.
response.encodeURL()
转码和URL后面加入Session ID.
Session也有自己的生命周期.
在web.xml下添加
<session-config>
   <session-timeout>30</session-timeout>
</session-config>   

Application
所有的客户端都可以访问
同样,客户端的信息可以共享.

javaBean是在java中使用其他的类的过程.
如,我们调用类,我们连接数据库,每次都要写很多实现,利用其他类封装好调用,也就是javaBean实现.

第四天 jsp初步认识

jsp的由来,由于servlet做网页时候,每一个按钮或者菜单等,都需要println语法来一个个输出来.
这样,对于大型网站的制作很困难.jsp是一种嵌套语言,他很方便的把自己的语法放在其他网页上,该语法以<%开头.
以%>结尾,里面是java语法.这样,我们做网页的时候,就可以把网页的界面和动态显示的内容分开.

jsp 和html一样,无需配置就可以在服务器上运行.
jsp也是一种servlet,在编写好的jsp程序后,第一次运行,
编译器会编译他,并生成java文件和class文件.
java文件中,包含大量的servlet输出内容.
jsp语法传统的是<%  %>来设计的.但是后期修改成<>设计,后来又推出了jstl和jsf,其实就是jsp2.0和jsp3.0;
由于不同的语法,使得开发者使用各不相同.

先讲下 传统的jsp语法.
Declaration 声明
Scriptlet  小程序段
Expression  表达式
comment  注释
Directives  编译期间的指令
Action    动作
内置对象

声明:
<%   .....%>局部变量
<%!  .....%>成员变量
如:

<%!  
int x=0;
%>
<%
int y=0;
%>
<%= ++x
%>
<%= ++y
%>
在浏览器上的结果就是 x每次刷新一直在加,而y只加了一次就不加了.
好.既然是成员变量区域,同样可以声明方法,但局部区域则不能声明方法了.
小程序段:
<%
for(int i=0;i<100;i++)
{
out.println(i);
}
%>
在浏览器上可以做一些小的运算.

注释:
<!--
html注释
-->
由于是html注释,所以在源文件上可以看到.
<%--
jsp注释
--%>
jsp注释,源文件上是看不到的.
//java注释
/*
java注释
*/
java注释,源文件也看不到

编译期间的指令:
<[email=%@Directive]%@Directive[/email]属性="属性值"%>
常见的有Directive:
Page
include
taglib
Page:
<[email=%@page]%@page[/email] language="script langugae"|  ----默认是java
               extends="className"| ---jsp文件是从哪继承
               import="importList"| ----引入进来哪些包和类
             buffer="none|kb size"|  ---none:不缓冲,默认是8K
              session="true|false"|  -----是否可以使用session,默认是true
            autoFlush="true|false"  -----缓冲器是否自动清除,默认是true
         isThreadSafe="true|false"|  
                   info="infoText"|  ----jsp相关描述信息
          errorPage="errorPageUrl"|  ----出错以后显示哪个页面内容
          isErrorPage="true|false"| -----当前页面是否是出错页面
      c  ----gb2312
%>

摘自:http://iwant2do.com/ 我的地盘,做我想做的事

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值