java开发一个简单的web网页的具体流程是什么?

发布网友 发布时间:2022-04-23 07:10

我来回答

6个回答

懂视网 时间:2022-05-02 21:34

准备---实体层:

package entity;

public class Student {
 private String name;
 private String adress;
 private String qq;
 public void setName(String name) {
 this.name=name;
 }
 public String getName() {
 return name;
 }
 public void setAdress(String adress) {
 this.adress=adress;
 }
 public String getAdress() {
 return adress;
 }
 public void setQq(String qq) {
 this.qq=qq;
 }
 public String getQq() {
 return qq;
 }
 public Student() {
 }
 public Student(String n,String a,String q) {
 name=n;
 adress=a;
 qq=q;
 }
}

准备---连接数据库:

package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Shujuku {
 public static Connection conn(){
  String url="jdbc:sqlserver://localhost:1433;DatabaseName=xinxi";//填写你的数据库名
  String userName="sa";//填写你的用户名,我的是sa
  String userPwd="********";//填写你的密码
  Connection connection=null;

 try{
 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 System.out.println("加载驱动成功!");

 }catch(Exception e){

  e.printStackTrace();

  System.out.println("加载驱动失败!");
 }
 try{
 connection=DriverManager.getConnection(url,userName,userPwd);
 System.out.println("连接数据库成功!");
 }catch(Exception e){
 e.printStackTrace();
 System.out.print("SQL Server连接失败!");
 } 
 return connection;
}
public static void close (Statement state, Connection conn) {//关闭
 if (state != null) {
 try {
  state.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 
 if (conn != null) {
 try {
  conn.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
}

public static void close (ResultSet rs, Statement state, Connection conn) {//关闭
 if (rs != null) {
 try {
  rs.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 
 if (state != null) {
 try {
  state.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 
 if (conn != null) {
 try {
  conn.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
}
}

 

 

 

1.servlet(首先StuService ts=new StuService();//新建service实体对象,以便后来调用service中add()方法

 

package servlet;
import service.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.*;
@WebServlet("/StuServlet")
public class StuServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 // TODO Auto-generated method stub
 request.setCharacterEncoding("utf-8");
 String method = request.getParameter("method");
 if(method.equals("add"))
 {
  add(request,response);
 }
 }
 StuService ts=new StuService();
 private void add(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
 req.setCharacterEncoding("utf-8");
 String name = req.getParameter("name");//从jsp中获取参数name
 String adress=req.getParameter("adress");
 String qq=req.getParameter("qq");
 Student stu=new Student(name,adress,qq);//新建
 int k=ts.add(stu);
 if(k==2) {
  req.setAttribute("message", "添加成功");//setAttribute方法用于将内容保存在对象中,传到add.jsp中
  req.getRequestDispatcher("add.jsp").forward(req,resp);//getRequestDispatcher方法用于进入下一个页面
 } 
 if(k==0)
 {
  req.setAttribute("message", "重复,请重新录入");
  req.getRequestDispatcher("add.jsp").forward(req,resp);
 }
 if(k==1)
 {
  req.setAttribute("message", "数据库添加失败");
  req.getRequestDispatcher("add.jsp").forward(req,resp);
 }
 }
}

 

 

 

①创建方法add(),Servlet从jsp中获取参数,新建实体对象Student stu=new Student(name,adress,qq);

②调用service层,检验添加的准确性

StuService ts=new StuService();//新建service对象

if(ts.add(stu)){

//如果service对象ts的Boolean add(stu)方法返回真值true,页面要显示添加成功

//req.setAttribute("message", "添加成功");将"添加成功"内容保存在req对象参数message中,传递给add.jsp

//req.getRequestDispatcher("add.jsp").forward(req,resp);进入下一个界面(这里是add.jsp)

}

else{

//收到返回值为false,添加失败

//将 "重复,请重新录入"内容保存在req对象参数message中,传递给add.jsp

//进入下一个界面(这里是add.jsp)

}

2. Service(新建dao实体对象,后面要调用dao层方法

 

package service;

import dao.StuDao;
import entity.Student;

public class StuService {
 StuDao sdao=new StuDao();
 public int add(Student stu) {
 int f=0;
 if(!sdao.rename(stu.getName())) {
  f=1;
  if(sdao.add(stu))
  f=2;
 }
 return f; 
 }
}

 

 

 

①创建 add(Student stu){}方法,检验添加的准确性

②调用dao层后台程序方法rename()检验是否重名

if(!sdao.rename(stu.getName())) {//如果没有重复

sdao.add(stu);//添加

f=true;//返回真值

}

技术分享图片

 

如图,直接在提示错误中点击创建方法即可

3. Dao(后台程序)

在这里编写所需的底层程序:

rename()//验证名字是否唯一

Add()//添加

 

public class StuDao {

 public boolean rename(String name) {
 // 检验名字是否重复
 boolean f=false;
 String sql="select name from stud where name=‘"+name+"‘";//数据库语句,查询界面输入和表stud中name是否重复
 Connection conn = Shujuku.conn();//创建连接
 Statement state = null;//建立Statement对象,执行静态SQL语句
 ResultSet rs = null;//ResultSet对象 是查询数据库时的返回对象,读取返回结果集
 
 try {
  state = conn.createStatement();
  rs = state.executeQuery(sql);
  while (rs.next()) {//不重复,返回true
  f = true;
  }
 } catch (SQLException e) {
  e.printStackTrace();
 } finally {
  Shujuku.close(rs, state, conn);
 }
 return f;
 }

 public boolean add(Student stu) {
 //添加
 String sql = "insert into stud(name,adress,qq) values(‘" +stu.getName() + "‘,‘" + stu.getAdress() + "‘,‘" + stu.getQq() + "‘)";
 Connection conn = Shujuku.conn();
 Statement state = null;
 boolean f = false;
 int a=0;
 try {
  state = conn.createStatement();
  a=state.executeUpdate(sql);//添加
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  Shujuku.close(state, conn);
 }
 if (a > 0) {
  f = true;
 }
 return f;
 }
}

 

4. Add.jsp

编写前端页面;

应用javascript验证客户端表单合法性。

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  Object message = request.getAttribute("message");
  if(message!=null && !"".equals(message)){
 
%>
 <script type="text/javascript">
  alert("<%=request.getAttribute("message")%>");
  </script>
<%} %>
 <div align="center">
 <h1 style="color: red;">信息录入</h1>
 <a href="index.jsp">返回主页</a>
 <form action="StuServlet?method=add" method="post" onsubmit="return check()">
  <div >
  姓名<input type="text" id="name" name="name"/>
  </div>
  <div >
  联系方式<input type="text" id="qq" name="qq" />
  </div>
  <div >
  地址<input type="text" id="adress" name="adress" />
  </div>
  <div >
  <button type="submit" >保   存</button>
  </div>
 </form>
 </div>
 <script type="text/javascript">
 function check() {
  var name = document.getElementById("name");;
  var qq = document.getElementById("qq");
  var adress = document.getElementById("adress");
  
  //非空
  if(name.value == ‘‘) {
  alert(‘名字为空‘);
  name.focus();
  return false;
  }
  if(qq.value == ‘‘) {
  alert(‘联系方式为空‘);
  qq.focus();
  return false;
  }
  if(adress.value == ‘‘) {
  alert(‘地址为空‘);
  adress.focus();
  return false;
  }
 }
 </script>
</body>
</html>

 

 

新手详解JAVA+数据库+JSP完成简单页面

标签:import   amp   lan   返回结果   util   Stub   OLE   tchar   姓名   

热心网友 时间:2022-05-02 18:42

web网页的主要流程就是 从请求到响应,从jsp页面的参数传递到后台的 控制层(action)再调用相应的服务层(service)进行处理,其中可能会用到数据层(),将处理后的结果响应给页面,或是跳转

热心网友 时间:2022-05-02 20:00

最简单的应该就 是jsp+servlet+数据库,当然如果你只是做个例子也可以不要数据库,然后你还需要一个容器,譬如tomcat,网上关于servlet的教程很多,你可以看一下,很容易懂的。这应该是最简单的方法,难一点的就是用框架了。

热心网友 时间:2022-05-02 21:34

(客户端)浏览器---------->向服务器发请求。服务器接到客户请求后作出一系列的响应。把客户想要的信息返回浏览器,浏览器解释出返回信息,显示给用户。
中间很多细节不是一两句话说得清的,那些细节也才是重点,自己慢慢琢磨

热心网友 时间:2022-05-02 23:26

jsp+servlet+数据库,简单的这三样就可以完成
复杂的话就很多了,框架啊之类的,技术也多了去了。

热心网友 时间:2022-05-03 01:34

初级入门的东东,很简单,你在w3cschool 随便看看就会了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com