1.jsp的执行过程
步骤一:翻译(jsp文件翻译成java文件)
步骤二:编译(java文件编译成class文件)
步骤三:执行(执行class(字节码)文件)
2.在jsp中实现日期输出在网页上
<%
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String datenow=sdf.format(new Date())
%>
<%=
datenow
%>
3.在jsp中使用运算
<%
int numa=4,numb=5;
int result=numa+numb
%>
<%=
result
%>
4.jsp综合实战项目
步骤一创建maven工程
步骤二创建工程包 util(工具包)entity(封装包)dao(方法包)service(方法包)servlet(动态输出包)
步骤三:引入pom依赖 在pom.xml中将dependency中的内容替换成
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
步骤四创建Servlet类
步骤4.2测试webxml
打开WEB-INF下的web . xml
web-app中的默认代码改成如下
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>DemoServlet</servlet-name>名字
<servlet-class>cn.kgc.servlet.DemoServlet</servlet-class>里面放DemoServlet的路径
</servlet>
<servlet-mapping>
<servlet-name>DemoServlet</servlet-name>DemoServlet是名字,可以任意取名,但是要和上面的servlet-name统一
<url-pattern>/DemoServlet</url-pattern>这个是DemoServlet是ip地址。网址里输入localhost:8080/DemoServlet
</servlet-mapping>
步骤5:创建测试DemoServlet
在Servlet目录下new一个类型为DemoServlet的类把里面的代码替换成
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("index.jsp").forward(request,response);转发代码
}
步骤六.创建数据库和表
步骤七. 实例类
在entity包中对数据库进行封装(封装表内的所有属性名)
步骤八.在util包下新建basedao类
basedao类中放固定的工具
如:
//声明三大对象Connection,PreparedStatement,ResultSet
protected static Connection conn;
protected static PreparedStatement ps;
protected static ResultSet rs;
public static final String DRIVER="com.mysql.cj.jdbc.Driver";
public static final String URL="jdbc:mysql://localhost:3306/db_08";
public static final String USERNAME="root";
public static final String PASSWORD="123456";
//连接数据库的方法和关闭数据库的方法
public void getConnection(){
try {
Class.forName(DRIVER);
conn= DriverManager.getConnection(URL,USERNAME,PASSWORD);
// System.out.println(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭
public void closeConn(){
try {
if (rs!=null){
rs.close();
}
if (ps!=null){
ps.close();
}
if (conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//通用增删改
public int executeUpdate(String sql ,Object[] params){
int flag=0;
try {
getConnection();
ps=conn.prepareStatement(sql);
if (params!=null){
for (int i=0;i<params.length;i++){
ps.setObject(i+1,params[i]);
}
}
flag=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConn();
}
return flag;
}
//通用查询
public ResultSet executeQuery(String sql ,Object[] params){
getConnection();
try {
ps=conn.prepareStatement(sql);
if (params!=null){
for (int i=0;i<params.length;i++){
ps.setObject(i+1,params[i]);
}
}
rs=ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static void main(String[] args) {
BaseDao bd=new BaseDao();
bd.getConnection();
}
步骤九
在dao包和service包内新建一个接口
接口中方法如下
public Integer addDemo(Demo demo);
public Interger delById(Integer id);
public Integer updateDemo(Demo demo);
public Demo findById(Integer id);
public List<Demo>findAll;
步骤10 DemoDaoImpl
在dao包下新建一个Impl包,Impl包里新建一个DemoDaoImpl类
DemoDaoImpl类首先继承basedao,再实现接口中的方法
可以使用alt加enter快捷键,重写接口中的所有方法
返回值调用父类(子类的方法中调用父类可以用super),在把sql语句传进BaseDao中,然后调用BaseDao中的方法
在DemoDaoImpl包中要写各个方法的sql语句
增删改:
增:return super. executeUpdate("insert into t_user (id,name,pwd)value(?,?,?)",
new Object [ ]{ demo.getId(),demo.getNme,demo.getPwd});
删:return super.executeUpdate("delete from t_user where id=?",new Object[ ]{id});
改:return super.executeUPdate("update t_user set name=? ,pwd=? where id=? ",
new Objer[ ]{demo.getName,demo.getPwd,demo.getId});
查询某个或者查询全部
查询某个:通用查询 有一个返回结果集用来写sql语句。增删改没有
Demo demo=new Demo();
rs=super.executeQuery(“ select*from t_uesr where id=?”,new Object[ ]{id})
try-catch
while(rs. next()){
demo.setId(rs.getInt("id"))
demo.setName(rs.getString("name"))
demo.setPwd(rs.getString("pwd"))
}循环遍历表中的数据,与id等于?的进行匹配
return demo;
查询全部:
List <Student>list=new ArrayList<>();
String sql="select *from t_user";
Object[ ]params=null;
rs=super . executeQuery(sql,parms)
try-catch-finally
while(rs. next()){
demo.setId(rs.getInt("id"))
demo.setName(rs.getString("name"))
demo.setPwd(rs.getString("pwd"))
list.add(demo); }
finally调用父类的关闭方法
return list;
步骤11:DemoService接口,方法同Demodao接口
步骤12.在Service包中建一个Impl包,Impl包中建一个DemoServiceImpl类
DemoServiceImpl类重写DemoService接口中的所有方法;
重写方法的上面加上:DemoDaoImpl ddi=new DemoDaoImpl();
增:return ddi.addDemo(DemoDaoImpl中增加的方法名)(demo)
删:return ddi.delByIdDemo (id)
改:return ddi.updateDemo (demo)
查某个:return ddi.findById(id)
查全部:return ddi.findall()
以上均为dao中的基础操作
步骤13 index.jsp
可以单独通过html的表格格式。table 和 tr让表格输出在网页上。不过这是死的表格
步骤14.Dmeoservlet
在步骤5中写了转发代码但是并没有写完
转发代码前。需要给服务器端赛数据
ArrayList<demo>list=new ArrayList<>();
Demo demo=new Demo();
demo.setId(1);
demo.setName("ls")
dmeo.setPwd("111")
Demo demo1=new Demo();
demo1.setId(2);
demo1.setName("zs")
dmeo1.setPwd("222")
list.add(demo)
list.add(demo1)
request.setAttribute("list",list)第二list是与list.add绑定的;第一个“list”与index.jsp中的${list}绑定
然后进行转发,转发到index.jsp
步骤14.2 在insex.jsp中引入jstl表达式并修改
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>//引入jstl表达式
<table cellpadding="0" cellspacing="0" border="1px solid">表格格式
<tr>
<td>编号</td>
<td>名称</td>
<td>昵称</td>
<td>身高</td>
</tr>第一行的死值
<c:forEach items="${lists}" var="list">(c:forEach等价于java中的循环遍历)(var="list" 给var一个别名,别名与下面的list.等价)
<tr>
<td>
${list.id}
</td>
<td>
${list.name}
</td>
<td>
${list.nickname}
</td>
<td>
${list.height}
</td>
</tr>
</c:forEach>
</table>
步骤15:servlet 调用service(调用数据库)
把方法中的代码替换成
DemoServiceImpl dsi=new DemoServiceImpl();new一个DemoServiceImpl
List<Demo>list=.findAll();(利用dao中查找全部的方法将数据塞入集合中)
request.setAttribute("lists",list);//在request 请求对象中绑定数据【servlet中绑定数据】(绑定集合)
request.getRequestDispatcher("index.jsp").forward(request,response);//转发到index.jsp(集合转发到index.jsp中)(循环遍历集合的数据输出在网页上)
标签:rs,demo,list,jsp,步骤,new,servlet From: https://www.cnblogs.com/liuxin6de1b/p/17526828.html