jsp基础语法

首先,要明确一下什么是jsp:



目前主流的三种动态网页开发技术的比较:



当然,随着技术的发展,肯定会有更多的技术涌现,而且,上面的方法也会克服目前的缺点,.net现在也不是以前那样单纯的托拉拽了。


现在我的是jsp方法,其实php或许是更好的选择,就我这样的新手而言,我想先完成知识面的拓展,先学全面,但是不是很深入,在对技术有了一定的了解以后,然后开始学习最新的技术。


今天主要看的是jsp的指令部分:

第一个page指令:


千万注意@后面是有一个空格的。


首先来试试修改contentType,在myeclipse中,新建web project,自己取个名字,然后点击finish:

 在刚才创建好的项目里面,找到webroot文件夹,打开,看到index.jsp.这就是你刚才创建的项目首页了,打开看看??



最上面一行就是我们要找的page指令了,将pageEncoding以及其属性值删除,然后加个空格!加个空格!加个空格!这里只要加一个空格,说三遍。然后按ALT+/,选择content'Type,然后将charset改成utf-8,这是因为默认的编码方式是全英文的,你想在页面上显示中文就要该编码方式



好的,在body里面添加简单的中文试试看!




这是我后来做了一些其他的东西,大家只要看那个<h1>里面的东西就好了,什么?不知道什么是<h1>,那你可以回头看看我写的html部分,哈哈。



这是页面元素中的注释部分,大家注意一下哪些是可以在客户端看到的,哪些是不能看到的就好了。(打开浏览器,找到刚才做的jsp文件,然后右键,查看源代码就知道了)。


<body>
    <h1>大家好</h1>
    <hr>
    <!-- 大家好,我是html注释 -->
    <%--大家好,我是jsp注释 --%>
    <%
    out.println("大家好,我是java代码"); 
    %>
    <%!
    String s="大家好,我是一个字符串。";
    int add(int x,int y){
    	return x+y;
    }
     %>
     <hr>
    大家好<%=s %><br>
  x+y=<%=add(1,8) %>  
  </body>

这个呢,就是我在body里面加的元素了,下面我就开始讲解其他的元素:


快快找一找哪些是脚本元素,就是那个:

out.println("大家好,我是java代码"); 

至于为什么用out.println而不是System.out.println,原因是:

System.out.println("")是标准的输出流,输出到控制台,而out是jsp内置输出对象,out.println("")输出到客户端页面。也就是说System.out.println("")对于JSP页面的展示没任何影响,如果要输出内容到jsp页面上,以上两种方法只能选第二个out.println(""),然而实际开发中很少使用out.println(""),基本都是用标签输出内容到页面。

简单点说呢,就是加上sys之后会输出到控制台,并不会在jsp页面中显示出来。



js声明:




很简单嘛,就是那个


String s="大家好,我是一个字符串。";
    int add(int x,int y){
    	return x+y;
    }

这里声明了一个字符串和一个返回值是int的方法;

或许到这里你会有疑问,前面的<% %>和这里的<%!  %>有什么不一样呢?


如果用java解释一下,你可能就明白了,

你可以尝试一下打开服务器自动生成的java文件,里面将jsp的java语句取出来,然后进行了相应的处理。
其中,有感叹号的放在成员变量(方法外面),没感叹号的放在方法里面(局部变量)





最后那部分就是表达式了。也就是把感叹号换成了等号嘛!




最后来介绍一下,jsp文件的生命周期:






(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。

(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。

(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。

(4)jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值