课上笔记——JSP基础

常用WEB服务器

WebLogic
webserver
tomcat <- 本次课程使用

常用开发工具
MyEclipse
Eclipse For J2EE
NetBean

下载地址:www.eclipse.org

http://192.168.21.48:8084/demo01/a1.jsp
..............................................................................
多网页之间传递信息
方式一:利用一个特殊的URL(超链接)来传递信息。
URL格式:连接地址?信息名=值&信息名2=值...(注意:在超链接中不可有空格)
方式二:利用表单的提交方式来传递信息。
<from action="目标页面,连接地址" method="get/post">
<input type="text" name="信息名" />
......
<input type="submit" value="显示文字" />
</form>
//点击submit处才会启动
//method="get/post"(区别是get会在地址栏显示信息,而post不会)
结果页面取得信息
语法:request.getParameter("信息名");
requset是一个类,该类继承自HttpServletRequests,该类的作用范围只能在两个页面之间传递。

多个信息的情况下,需要多次使用上面的语句

request的主要方法:
<% requset.getRemoteAddr %> 得到本机客户端的IP地址
<% requset.getContextPath %> 得到指定位置的绝对路径
<% requset.setAttribute("名称","值") %> 写入“名称”的值
<% requset.getAttribute("名称") %> 取出“名称”的值

<jsp:forward page="dl.jsp" /> 后面的代码都不会执行,直接跳转到dl.jsp


用例:
文本框 <input type="text" name="x" />
密码框 <input type="password" name="x" />
登陆框 <input type="submit" value="dl" />
单选框 <input tyoe="radio" name"x" value="y" checked>xx
多选框 <input type="checkbox" name"x" value="y" checked>xx

下拉列表 <select name="x">
<option value="0">学生</option>
<option value="1">老师</option>
<option value="2">家长</option>
</select>
返回多值使用:
String[] gp = request.getParameterValues(String name);


隐藏域 <input type="hidden" name="x" value="xx" /> 传递一些值,但不在页面上显示。value中为传递的值。


Session对象:
String s =(String)session.getAttribute("名字"); (需要转化为字符串,若无值,返回null)


动作标记:用于在页面完成某些标准HTML无法完成的功能,其结果通常不会显示。
<jsp:标记名称 属性=值></jsp:标记名称>

指令标记:用于定义页面的显示方式,或在页面上显示某些内容。
<% @ 标记名称 属性=值 %>


taaglib标记
作用:在网页上添加一套新的自定义的标记

属性:uri--新标记的定义文件的名称

<% @ taglib uri="http://www.sub.com.jstl.xtd" %>

JSTL

<c:if test="1=1">
xxxx
<c:else>
xxxx
</c:if>

 

 

Servlet

首先servlet代码分为3个页面
1.开始页面
2.中间由Java程序来完成,request对象
3.结果页面

Servelt配置项
进入web.XML文件
在</web-app>上面写配置

<!-- 以下为Servlet配置 -->
<!-- 基本配置,决定了后台Java类的类名 -->
<servlet>
<servlet-name>User</servlet-name>
<servlet-class>UserAction</servlet-class>
</servlet>

<!-- URL配置,决定了哪一个跳转链接会跳转到上面制定的类 -->
<servlet-mapping>
<servlet-name>User</servlet-name>
<url-pattern>/user.jav</url-pattern>
</servlet-mapping>


<url-pattern></url-pattern>

链接地址:
1.链接地址可以为任意的名称以及任意的扩展名,也可以不要扩展名
2.链接地址中允许出现*号,从而使一个servlet可以对应多个链接地址

注意:关于*号和web.xml中的执行。在web.xml文件中,url-pattern链接是去匹配先写的。

 


Servlet中内置对象的对应类

request:HttpServletRequest
response:HttpServletResponse

session: HttpSession
得到方法:利用request对象的getSession方法

application: ServletContext
得到方法1:利用Servlet内置的getServletContext方法。
得到方法2:先利用getConfig方法得到config对象,再利用config对象的getServletContext方法。

以上的类不允许自己new出,必须采用Servlet提供的内置方法取得。

 

 

SQL基本

insert into 表名(字段名) values (值列表)
insert into 学生表(学号,姓名) values('1002','李四')


delete from 表名 where 条件
delete from student where sno='1003'
delete from student where class='14春JAVA班' and class='12秋JAVA班'

改(更新)
update 表名 set 字段1=新值,字段2=新值,...字段n=新值 where 条件(指定是要改哪一条)
update student set name='张三' where sno='1001'



select 显示字段 from 表名 where 条件


------------------------------------------------------

数据库技术:JDBC
Java Data Base Connection
JDBC仅提供一套用于数据库连接和发送SQL语句的类,不考虑具体实现,具体的实现有各数据库公司负责完成。

// PS:与android程序不同,网页程序中,不会在JAVA代码内创建数据库和表

/*************************************/
/* 添加数据的操作 */
/************************************/

/* 加载数据库驱动程序 */
// 语法:Class.forName(驱动名称)
// 注意事项: 需处理ClassNotFoundException异常
// 需处理SQLException异常
// 如果写错驱动名,则程序在运行前不会报错,运行时报错
// ClassNotFoundException异常
try {
// 驱动名称
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");


/* 打开数据库连接 */
// 指明连接参数
String conStr =
// "数据库类型:// ip地址:端口;DataBase=数据库名 "
"jdbc:sqlserver://localhost:1433;DataBase=gxa";
// 建立到数据库的连接
Connection con = DriverManager.getConnection(conStr, "sa", "1111");

/* 利用数据库连接生成用于发送SQL的类 */
Statement st = con.createStatement();

/* 利用发送SQL的类发送一条SQL语句 */
String sql = "insert t_student (sno,sname,sage) values" +
"('1004','赵六','11')";
st.execute(sql); // execute方法只能发送增、删、改

/* 关闭数据库连接 */
con.close();

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("数据库驱动加载失败时");
e.printStackTrace();
}catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("数据库驱动加载失败时");
e.printStackTrace();
}

posted @ 2015-04-08 17:39  yg_new  阅读(138)  评论(0)    收藏  举报