存档

文章标签 ‘语法’

Servlet程序设计

2008年4月2日

Java Servlet是一种使用Java编写的CGI程序

  • CGI:通用网关接口
  • 与传统的CGI不同,Servlet是一种多线程处理模式–性能较高
  • 在Servlet中可以控制输出HTML代码,则所有的HTML代码必须使用out.println()一行一行输出

Servlet的生命周期

  1. 初始化(1次)
    • public void init(ServletiConfig config) throws ServletException
      Servlet初始化有两种方式

      • init():当不需要传递初始化参数时使用
      • init(ServletConfig config) :如果使用这种初始化方法,则上面的无参初始化方法无效,这种方式适用于需要传递初始化参数
  2. 服务(多次)
    • doGet();表单和地址输入都为GET请求
    • doPost(); 只有表单输入为POST请求
  3. 销毁(1次)
    • 服务器关闭
    • 此Servlet长时间不使用

简单Servlet编写

  1. Servlet直接继承直HttpServlet
  2. 在doPost(doGet)方法中写入相应的程序代码
  3. 配置WEB.XML文件
    • JSP程序的功能与Servlet一致,意味着Servlet程序同样可以被外部所访问,就必须有一个地址,这只能通过WEB映射解决
      • 修改web.xml文件可以配置映射地址
        //表示要使用一个Servlet
      • <servlet>  
              //在web.xml文件内部起作用的名字  
              </servlet><servlet -name>Simple</servlet>  
              //servlet程序所在包.类名称  
              <servlet -class>net.hialex.Servlet.SimpleServlet</servlet>       
         
        //servlet映射地址               
        <servlet -mapping>  
             //在web.xml文件内部起作用的名字,与上面的名字一致  
             </servlet><servlet -name>Simple</servlet>  
             //具体映射路径,前面必须要有一个/  
             <url -pattern>/demo</url>
  4. 注意:
    • 在编译servlet时可能会遇到找不到servlet包的问题,这是因为servlet为JDK的扩展包,所以在使用时需要指定classpath
    • 若不指定classpath可以将servlet.jar文件拷贝到JSK安装路径下的jre\lib\ext下
  5. 结论:在Tomcat中,存在servlet的全部库文件(%Tomcat_HOME%\lib\servlet-api.jar)

HttpServlet类

  • 继承自GenericServlet类并增加了doGet()、doPost()等七个方法
  • doGet()方法:当客户端发送get请求时就调用doGet()方法,HTTP缺省的就是Get
  • doPost()方法:当客户端发送HTTP请求调用POST方法调用doPost()方法

对于一个基本的Servlet程序必须注意以下几点:

  1. 首先一定要符合Servlet程序的开发框架
  2. 配置web.xml文件
  3. Servlet的缺点是不适合输出大量的HTML代码

阅读全文…

alex Java , , , , , ,

(八)JSP基本语法G–其他对象

2008年2月13日

过年期间对自己要求有点放松了,好几天没看视频了,今天开始照常!

Application对象:属于javax.servlet.ServletContext,其作用是保存公共信息

  • 属性操作的三个方法:setAttribute(),getAttribute(),removeAttribute()
  • 得到工作目录的真实路径的方法:Public String getRealPath(String path)此方法需要一个参数“/”
  • Application是整个服务器中保持的只有一个实例的对象
  • 在实际开发中经常使用getServletContext()去代替Application

out对象:

  • out对象主要用于动态的向客户端输出数据
  • 在JSP开发中要尽量少使用此对象
  • 开发中的原则:
    • HTML代码与JAVA代码分离,如果要输出,尽量使用表达式输出(<%=%>),要用(<%=%>)完全代替(<%Out.print();%>)

JSP安全性及Config对象的应用

  • JSP安全性
    • 在J2EE中安全性的体现:工作目录的WEB-INF文件夹
      • 将页面放置到WEB-INF文件夹中下则页面无法被发现,提高了安全性,欲访问WEB-INF文件夹下的文件可以通过修改WEB.XML文件
      • web.xml文件:属于整个WEB站点的配置文件
      • 在web.xml文件中添加下列代码:
                <servlet>
                //在web.xml文件内部起作用与servlet-mapping关联
                <servlet-name>test</servlet-name>
                //找到jsp文件的路径,此路径一般保存在WEB-INF之中
                <jsp-file>/WEB-INF/demo.jsp</jsp-file>
        </servlet>
        <servlet-mapping>
                //在web.xml文件内部起作用与servlet-name完全一致
                <servlet-name>test</servlet-name>
                //网页上输入的实际路径地址
                <url-pattern>/demo</url-pattern>
        </servlet-mapping>
      • 当此文件被修改之后必须重新启动服务器–因为服务器在启动时会读取此文件
  • Config对象:属于javax.servlet.ServletConfig
    • 要使用config对象的前提:JSP页面必须在web.xml中进行配置
    • 在<servlet>与</servlet>中添加下列代码:<init-param>
      <param-name>参数名</param-name>
      <param-value>参数值</param-value>
      </init-param>
    • <init-param></init-param> 可添加多个
    • 如果要取得这些初始化参数,必须通过映射名称进行访问jsp页面,才可以取得初始化参数,通过config对象来取得
      • 取得初始化参数的方法:public String getInitParameter(String name),通过这中功能可以将数据库连接的一些信息写在配置文件之中
      • 常用的方法还有:public Enumeration getInitParameterNames()取得全部配置参数

alex Java , , , , ,

(三)JSP基本语法B

2008年1月12日

include指令: <%@include file="uri"%> e.g.<%@include file="hello.jsp"%>

  1. include命令可以包含任意文件,它包含的是文件的内容。但是在一个jsp页面中,只能有一组<html>、<head>、<body>
    • 原则:在开发中被包含的文件只写显示部分的HTML代码,主体代码不要出现
  2. 包含的时候不区分文件名称、后缀,只是将内容包含进来

包含语句<jsp:include>:

  1. <jsp:include page="uri" /> 或者 <jsp:include page="uri" flush="true"><jsp:param name="参数名称" value="参数值" /></jsp:include>
    • 若使用后一种语句可以向被包含的页面之中传递参数,如果是传递参数,则所包含的页面必须是JSP页面,必须是动态页面
    • 若包含的是JSP页面,则自动进行动态处理,若是非动态文件,则只是将内容包含进来
  2. 这种语句与HTML代码相似,称为标签指令形式
    • 标签指令形式代码必须完结 </XXX:XXXX>
    • 标签指令形式代码必须写在Scriptlet(<%…..%>)之外

<%@include file="uri"%>:只是将页面的内容静态的包含进来,若被包含的页面有JSP代码,则执行此代码而不管被包含的页面文件后缀如何                                          //  先包含后处理

<jsp:include page="uri"/>:若被包含的文件内容是静态的,则直接将内容包含进来,但是不处理,如果被包含的页面是动态的,则先执行,再把结果包含进来显示                  //   先处理后包含

两者的区别

  • <%@include%> :所有代码包含进来,一起进行处理,把所有代码合在一起
  • <jsp:include>:所有代码分别处理,处理完成之后再将代码的显示结果(处理结果)包含进来

跳转语句<jsp:forward>

  1. <jsp:forward page="uri" /> 或者 <jsp:forward page="uri" flush="true"><jsp:param name="参数名称" value="参数值" /></jsp:forward>
  2. <jsp:forward>也属于标签指令,使用也必须完结
  3. <jsp:forward>语句属于无条件跳转语句
  4. 使用此跳转语句,页面内容是进行了跳转,但是地址栏的地址没有变化,如果没有变化,意味着用户的请求依然没有改变,即<jsp:forward>属于服务器跳转

alex Java , , , ,

(二)JSP基本语法A

2008年1月11日

注释类型:

  • 显示注释:HTML注释,此注释发送到客户端
  • 隐式注释:JAVA注释,此注释不会发送到客户端

在JSP中可以使用三种注释:

  1. <!– 注释内容 –>
  2. <% //JAVA注释内容 %>或者<% /*多行内容*/ %>
  3. <%– JSP注释 –%>

声明语句:格式:<%!声明语句%>  举例:<%!String text="Hello World!" %>

  • 用此种方式可以声明全局变量、类、方法

表达式:格式:<%=表达式%>,用来输出值,类似于out.println();

  • 在实际开发中尽量少用out.println();输出而用<%=表达式%>,这么做的目的是达到HTML和JAVA代码的分离

脚本代码(Scriptlet):格式:<%代码段%>,用来写具体的JAVA代码或者声明局部变量

  • <%!  %>和<%  %>声明的变量区别是:<%!  %>只赋一次值

JSP是一种动态的WEB程序,必须有交互功能

HTML与服务器的交互主要途径是表单

JSP接受传递过来的参数的方法:String str=request.getParameter("参数名称");

所有的JSP代码最终都是拼凑出来的,不是固定的,由WEB容器拼凑出来的

form表单的提交方式:

  • post:提交的内容不会被显示,没有长度要求
  • get: 提交的内容会被显示出来,地址栏的长度只有4K~5K,大数据则无法显示

范例:打印一个表格,行数和列数由用户输入

阅读全文…

alex Java , ,