2023年11月28日发(作者:)
现在越来越多人做网页了,闲着无聊汉堡给些刚学网页的人写点东东吧!!写的不好不要见
怪啥!!!
现在给大家讲以下通常一般的人用的JSP页面编程吧(高手都是用SSH)!!对刚学JAVA的
人或许有点难度而且还要会一点SQL SERVER,而且这次对不会用MyEclipse的也会有详细
步骤说明。
通常我们看到很多人的论坛或者页面上都有很多JAVA代码,而我们这次准备用SERVLET
和表达式完全屏蔽这一点,保证页面上完全没有一点代码的出现(注意JAVA SCRIPT是脚
本语言),还有实现数据库的“增删改查。并且为了不增加难度尽量把代码量缩短,所以也会
有不规范的地方,比如接口之类的就不写了啊,大家多多包涵!
本人使用的工具是SQL2005+MyEclipse6.5+Tomcat 6.0,做一个考试成绩的操作为例子.
下面我们开始吧!!!
第零步:这一步是为了开发中方便增加的。
首先Windows—Preferences—然后再左边树中打开如下图:
然后再
(通常本身只有一个”.”)
这里加入abcd四个字母(最多增加四个就加不了了),点击OK完成设置。
然后再File—Export出现在如下图:
然后选择图片黑体部分然后按Next出现如图:
注意选择存放的路径,名字随便取!通常选择放在桌面方便点!
回到桌面,右键记事本打开刚刚保存的文件,查找“.abcd”就是刚刚输入的,然后再后面把另
外的22个字母全部添加在后面然后保存。如图:
回到MyEclipse,File—Import,出现一个画面跟前面的前面那幅图一样选择Preferences然后
Next,选择刚刚的文件,Finish完成。全部完成。
这一步的功能就是可以让你在输入的代码的时候只要输入第一个字母,后面马上出现所有有
关的提示,超级方便,以后就不用打那么多代码了。嘿嘿。
正式开始
第一步:
新建工程:File—New—Web project出现画面
Project Name:就是填工程名
Context root URL:这个指的是在页面打开是输入的名称(后面会讲到,这个也可以不用填)
下面J2EE Specification Level中选择JAVA EE5.0(根据你的系统情况)
然后按Finish完成。
注意:没有讲到的都是默认,之后的也是这样不再重复。。
第二步:新建完工程后在工具的右边栏出现一个树
右键树中的src新建Package,在Name中输入包名:通常使用域名反写:例如通常中间是
一些代号名称,比如图中的llg就是我的名字,但是在实际开发中切不可使用自己的名字,
要取的有意义点,也不一定只有三层。
新建完三个包后,在包名下右键新建Class类,如图新建类
注意:ExamDemo先不要建,这个是Servlet类.
第三步:开始写代码了,有了第零步的帮助会发现快很多.
打开,这个类用于连接数据库和关闭数据库连接用.
输入以下代码:
//import 都是导入包,这些都可以不用自己输入,在你输入有关的代码自动会导入
import tion;
import Manager;
import Set;
import eption;
import ent;
public class DBConnection {
//新建一个静态的Connection 类型的方法
public static Connection getConnection() {
Connection connection = null;
try {
//以下用于连接数据库 e("verDriver");
//1960是端口号,可能要自己更改,有些用的是1433,exam是数据库名
String url = "jdbc:sqlserver://localhost:1960;DatabaseName=exam";
//下面的sa,1,是数据库的登录名和密码更具自己的更改吧
connection = nection(url,"sa","1");
} catch (Exception e) {
tackTrace();
}
return connection;
}
//关闭ResultSet
public static void closeResultSet(ResultSet rs) {
if (rs != null) {
try {
();
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}
}
}
//关闭Statement
public static void closeStatement(Statement s) {
if (s != null) {
try {
();
} catch (SQLException e) {
// TODO Auto-generated catch block
= name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
e = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
Connection connection = nection();
//SQL语句
String sql = "insert into Tmark values(?,?,?,?)";
PreparedStatement ps = null;
try {
ps = eStatement(sql);
ing(1, e());
(2, nese());
(3, h());
(4, lish());
//执行语句并且返回行数
int num = eUpdate();
//判断是否返回行数
if (num != 0) {
return true;
} else {
return false;
}
try {
statement = Statement();
rs=eQuery(sql);
examList = new ArrayList
//遍历数据
while (()) {
//每循环一次新建一个新的实体并保存数据
Exam exam1 = new Exam();
}finally{
//关闭连接
tatement(statement);
onnection(connection);
}
return true;
}
//根据ID查询跟前面的查询一样只是SQL语句有点不一样
//链接数据库
Connection connection=nection();
//SQL语句
String sql="update Tmark set
name='"+e()+"',chinese='"+nese()+"',math='"+h()+"',englis
h='"+lish()+"'where id='"+()+"'";
Statement statement=null;
try {
statement=Statement();
//执行并判断语句的是否成功
if(eUpdate(sql)>0)
{
return true;
}else {
return false;
}
} catch (SQLException e) {
}
} catch (SQLException e) {
// TODO Auto-generated catch block
tackTrace();
}finally{
tatement(statement);
esultSet(rs);
onnection(connection);
}
return examList;
}
}
到了这一步,基本上就都差不多了,操作数据库的方法全部都在这个类中!!
以后需要任何数据均是调用这个方法!
第四步:新建Servlet
之前说有一个ExamDemo不建立的原因是因为这个类有一点的不同.
同样是在包下右键New—Servlet(如果看不到就在other里面找)
输入名称,然后按着下一步完成就可以了。
之后打开类,发现里面有很多方法。
把doGet和doPost留下,其他全部删除掉。
然后也把doGet和doPost方法括号内的代码删除掉。
在doPost中添加一句代码:doGet(request, response);保存。
(doGet这个方法就是用来与页面转发用的,后面会用到)
现在打开如图的下面:
可以更改一些东西,其实也可以不用更改,但是改了更直观也简单些。(这个配置文件在任
何时候都很重要,在以后用到更高级的技术的时候这个东西也是基本不可缺少的)
这个配置文件就是用来配置页面提交的时候全部都会先经过刚刚建的那个Servlet类。
代码如下(更改了一点点而已并不多):
xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_"> —- 下面这句就是用来在页面跳转的时候的action,然后根据ExamDemo名字找到上面 定义好路径的类“mo” -->
第五步:现在开始页面了,只要会HTML差不多都OK了,这个就简单了。
首先是,这个页面本来就有,其他的也是右键新建JSP文件就不说了.
一共三个页面如图:
首先,因为不在页面使用JAVA代码,所以只能调用标准标签库,所以在每个页面的最上面加上
一句: <%@ taglib uri="/jstl/core_rt" prefix="c"%>.
<%@ page language="java" import=".*" pageEncoding="utf-8"%>
还有这句中的pageEncoding必须改成utf-8,不然工具不让你用中文
之后页面的代码我就直接给出了:
:
<%@ page language="java" import=".*" pageEncoding="utf-8"%>
<%@ taglib uri="/jstl/core_rt" prefix="c"%>
—-用一个隐藏表单提交一个只到Servlet到时候用来判断是哪个页面提交的 --> 名字: 語文: 數學: 英語: —-第二个form --> —-隐藏表单表示用于查询用的 --> —-第三个form --> —-隐藏表单用于表示是删除 --> 姓名 —-添加超级连接并且传值command,表示为修改该id是表达式${}的数据得连接 会跳转到页面 --> ${e} ${h} ${} —提交删除的时候把在复选框前面打勾的全部都删除,均跟据复选框中Id的值删除 --> 其中是用于表示成功的页面!!!一句话就可以了 —-一个form提交到examdemo --> —第一个隐藏表单表示是修改,第二个表示修改数据行的ID --> 名字: —-在文本框从表达式中得到页面中获取的数据,下面的都一样--> 語文: 數學: 么,但是现在是书写的所以就直接分开说明了) 打开,里面就两个方法,在doGet中加入下面代码: //这句话用于获取页面提交过来的隐藏表单的值 String command = ameter("command"); //通过判断隐藏表单的值,来确定调用时哪一个方法 if ("add".equals(command)) { //这个方法用于跳转到另一个方法来实现功能,下面的都一样,是需要自己写的. doAdd(request, response); } if ("login".equals(command)) { dologin(request, response); } if ("delete".equals(command)) { doDel(request, response); } if ("toupdate".equals(command)) { doToUpdate(request, response); } if ("update".equals(command)) { doUpdate(request, response); } 下面就给整个类的代码: package t; } if ("login".equals(command)) { dologin(request, response); } if ("delete".equals(command)) { doDel(request, response); } if ("toupdate".equals(command)) { doToUpdate(request, response); } if ("update".equals(command)) { doUpdate(request, response); } } // dologin方法 public void dologin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = ameter("login_name"); if (name == null) { name = ""; } Exam exam = new Exam(); e(name); ExamDAO examDAO = new ExamDAO(); List //调用查询的方法,并且返回一个List examList = (exam); //将数据保存到会话中,其中"examList"是在页面用表达式获取,因为是LIST所以用标准标// 签库中的foreach循环 ribute("examList", examList); //跳转,并将数据带到页面 RequestDispatcher rd = uestDispatcher(""); d(request, response); } //doDel方法 public void doDel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //用数组吧复选框中的Id值获取下来 String[] id = ameterValues("mark"); ExamDAO examDAO = new ExamDAO(); //通过循环重复调用删除方法法 for (String ids : id) { if ((ids) == false) { direct(""); } } Exam exam2 = new Exam(); //调用更具Id查询数据的方法examById();,并且获取根据ID查询出来的数据 exam2 = Id(exam); List e(""); examList = (exam); //保存数据到会话 ribute("examList", examList); ribute("exam2", exam2); //跳转 RequestDispatcher rd = uestDispatcher(""); d(request, response); } // doUpdate方法 public void doUpdate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取修改页面传的文本框中的值,并将需要转换类型的值转换 String name = ameter("name"); int id = nt(ameter("id")); int chinese = nt(ameter("chinese")); int math = nt(ameter("math")); int english = nt(ameter("english")); Exam exam = new Exam(); //全部保存到Bean中 (id); nese(chinese); h(math); lish(english); e(name); ExamDAO examDAO = new ExamDAO(); //调用updateExam()方法更改数据,并判断 if (examDAO. updateExam (exam)) { //跳转 RequestDispatcher rd = uestDispatcher(""); d(request, response); } } } 最后,也是很重要的一步,就是加入sql的驱动.直接将文件拖到WEB-INF中的lib 文件中就可以了.. 现在已经全部都完成了,剩下的就是部署Tomcat,和运行Tomcat就完成了. 先去网络上下载一个Tomcat6.0吧!然后再Windows—Preferences—然后再左边树中打开如下 记得在右边栏的最上面的单选按钮中选择的是Enable.然后选择你tomcat的路径吧. 接着 单击菜单栏上面的如图的图标: 在下拉框中选择你的工程名,单击Add选择Tomcate6.0,然后按OK. 最后在添加Tomcat的按钮旁变有个下列表的如,选择下拉列表中的Tomcat6.x,然后 Start。 接着打开IE地址中输入: localhost:8080/examdemo, examdemo这个指的就是当初在新 建包的时候Context root URL中填的名字,没有添地址栏就不用加.


发布评论