前几天帮一个朋友写了个简单的彩票系统,因为只是一个很简单的应用,所以在技术选型的时候,尽量选用的简单,容易上手的,没有采用很重的框架!写完后给自己简单做个笔记
技术选型:jsp + servlet + javabean + jdbc + mysql + tomcat 构建采用maven,因为这个太简单了,搭建起来,跟ant比。不用写一大堆得东西!
mvnc model 1 模型,看到这些东西就知道是很早起的软件主流技术了,但是现在写起来还是存在很多问题,太久没折腾这些东西了!都是些基础性的东西
问题1:jsp中如何使用 jstl标签
step1) 需要下载jstl包 早maven得pom.xml中添加:
<dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
step2) 将这个包中的 c.tld 放到 src/main/webapp/WEB-INF/下 (因为我只用到了 c标签)。其他的只需要将所有的放下这个目录下即可!
step3) jsp页面中 添加:
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
<%@ page isELIgnored=”false”%>
//具体使用
<c:forEach items=”${allLotteryResult}” var=”item” varStatus=”status”>
<tr>
<td>${status.index+1}</td>
<td>${item.loName}</td>
<td>${item.fullName}</td>
</tr>
</c:forEach>
allLotteryResult : request.setAttribute(“allLotteryResult”,allLotteryResult);
item:具体的使用对象变量
status:整个对象,较为常用的就是这个 index表示下标值
step4) 有一点可能会出现的问题: 在web.xml中 需要将你得头制定到你下载的servlet包
<web-app version=”2.5″ xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
版本需要对,例如这里的 2_5
2.servlet中得两种跳转方式
内部跳转;
RequestDispatcher view = req.getRequestDispatcher(url);
view.forward(req, resp);
s1 这个过程其实经历了两次跳转
s2 只能在内部进行跳转
s3 可以将跳转过程中设置的参数带到页面
外部重定向:
resp.sendRedirect(url);
不会将请求中设置的参数带过去,要像带参数的话 只能通过 ?xx=xx&bb=bb的方式
可以请求外部地址,这个url可以是 www.baidu.com等
3.web.xml中如何配置 servlet
<servlet>
<servlet-name>levelManager</servlet-name>
<servlet-class>com.sample.web.level.LevelManager</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>levelManager</servlet-name>
<url-pattern>/level/levelManager.do</url-pattern>
</servlet-mapping>
在做的时候悲剧的发现 自己连.do这种设置方式都忘记了。可能在用公司框架的东西用傻了!
4.service层采用的是领域建模中提倡的那种 BO+service(服务)的方式来处理业务逻辑。其实本身也没什么特别复杂的业务逻辑,基本就是CURD操作
5.DAO这层,封转了一个DAOTEMPLATE + JDBCUtil,将一些公用的CURD进行了处理。不过在写的时候没有特别的注意抽取出接口,偷懒了!
用JDBC操作数据库就下面几个核心步骤,刚入行的时看得还是挺难得,现在来看,只是使用API的方式还是很简单的东西
url = “jdbc:mysql://localhost/lottery?useUnicode=true&characterEncoding=GBK&jdbcCompliantTruncation=false”;
username = “lottery”;
password = “123456”;
driverName = “com.mysql.jdbc.Driver”;
1.注册数据库驱动
Class.forName(driverName);
2.建立连接
DriverManager.getConnection(url, username, password);
3.准备SQL数据:
4.执行并处理返回结果
5.关闭连接
Connection 连接
PreparedStatement 操作SQL对象
ResultSet 结果集合
需要注意的是 设置参数是从1开始的 :
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = jdbcUtil.getConnection();
ps = conn.prepareStatement(sql);
for (int i = 0; i < args.length; i++) {
ps.setObject(i + 1, args[i]);
}
rs = ps.executeQuery();
Object obj = null;
while (rs.next()) {
obj = rowMapper.rowMapping(rs);
}
return obj;
} finally {
jdbcUtil.close(rs, ps, conn);
}
0 条评论。