日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

java mvc设计_javaweb之MVC设计模式

發布時間:2023/12/14 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java mvc设计_javaweb之MVC设计模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.MVC簡介

MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。MVC是一種設計模式,它把應用程序分成三個核心模塊:模型,視圖,控制器,它們各自處理自己的任務。

模型(體現在下圖中的POJO和數據庫)是應用程序的主體部分,表示業務數據和業務邏輯。一個模型能為多個視圖提供數據。由于應用于模型的代碼只需要寫一次就可以被多個視圖重用,所以提高了代碼的可重用性。

視圖是用戶看到并與之交互的界面,可以向用戶顯示相關的數據,也可以接收用戶的輸入,但是不進行任何實際的業務處理。

控制器接收請求,獲取請求參數,調用DAO方法,決定用哪個模型組件去處理請求,然后決定調用哪個視圖來顯示模型處理返回的數據。

MVC模式處理過程邏輯放在servlet中,顯示交給jsp。客戶端發請求到服務器,服務器調用servlet,servlet作為一個控制器,接收請求,根據請求的相關邏輯情況去調用java類的方法,由java類完成業務邏輯跟訪問數據庫的操作,然后servlet根據pojo的返回結果,轉向不同的jsp頁面, jsp完成顯示的功能。

2.MVC案例之查詢

MySql數據庫中的數據內容為:

例如,現有需求需要實現在網頁點擊超鏈接,可以在頁面顯示參加考試的學生的所有信息(學生的考試信息存儲在數據庫中)。設計思路如下圖所示,首先點擊網頁的超鏈接listAllExamStudent,發送get請求到servlet,由服務器調用servlet的doGet方法,在doGet()方法中需要做到:①.調用ExamStudentDao的getAll()方法返回學生的List對象;②.把1得到的List放入request中;③.請求的轉發到student.jsp;

實現代碼:

點擊網頁的超鏈接listAllExamStudent,發送get請求到servlet。searchTest.jsp

listAllStudents

listAllStudentServlet.java

package com.javaWebMVCTest;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class listAllStudentServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

studentDao studentdao=new studentDao();

//調用ExamStudentDao的getAll()方法返回學生的List對象;

List students=studentdao.getAll();

//把1得到的List放入request中

request.setAttribute("students", students);

//請求的轉發到student.jsp

request.getRequestDispatcher("/jspTest/students.jsp").forward(request,response);

}

}

在web.xml中進行配置:

listAllStudentServlet

com.javaWebMVCTest.listAllStudentServlet

listAllStudentServlet

/listAllStudent

/listAllStudent映射的地址為searchTest.jsp中超鏈接的鏈接地址。

student.java

package com.javaWebMVCTest;

public class student {

private Integer flow_id;

private int Type;

private String id_card;

private String exam_card;

private String student_name;

private String Location;

private int Grade;

public Integer getFlow_id() {

return flow_id;

}

public void setFlow_id(Integer flow_id) {

this.flow_id = flow_id;

}

public int getType() {

return Type;

}

public void setType(int type) {

Type = type;

}

public String getId_card() {

return id_card;

}

public void setId_card(String id_card) {

this.id_card = id_card;

}

public String getExam_card() {

return exam_card;

}

public void setExam_card(String exam_card) {

this.exam_card = exam_card;

}

public String getStudent_name() {

return student_name;

}

public void setStudent_name(String student_name) {

this.student_name = student_name;

}

public String getLocation() {

return Location;

}

public void setLocation(String location) {

Location = location;

}

public int getGrade() {

return Grade;

}

public void setGrade(int grade) {

Grade = grade;

}

public student(Integer flow_id, int type, String id_card, String exam_card, String student_name, String location,

int grade) {

super();

this.flow_id = flow_id;

Type = type;

this.id_card = id_card;

this.exam_card = exam_card;

this.student_name = student_name;

Location = location;

Grade = grade;

}

public student(){}

}

連接數據庫及查詢的操作:studentDao.java

package com.javaWebMVCTest;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import com.javaWebMVCTest.student;

public class studentDao {

public List getAll(){

List stus=new ArrayList<>();

Connection connection=null;

PreparedStatement preparedstament=null;

ResultSet resultset=null;

try{

String driverClass="com.mysql.jdbc.Driver";

Class.forName(driverClass);

System.out.println("數據庫驅動加載成功!");

connection=DriverManager.getConnection("jdbc:mysql:"+"//localhost:3303/students?autoReconnect=true&failOverReadOnly=false","root","0404");

System.out.println("數據庫連接成功!");

String sql="SELECT flow_id,Type,id_card,exam_card,student_name,Location,Grade FROM students";

preparedstament=connection.prepareStatement(sql);

resultset=preparedstament.executeQuery();

while (resultset.next()){

int flow_id=resultset.getInt(1);

int Type=resultset.getInt(2);

String id_card=resultset.getString(3);

String exam_card=resultset.getString(4);

String student_name=resultset.getString(5);

String Location=resultset.getString(6);

int Grade=resultset.getInt(7);

student students=new student(flow_id,Type,id_card,exam_card,student_name,Location,Grade);

stus.add(students);

}

}catch(Exception e){

e.printStackTrace();

}

try{

if (connection!=null){

connection.close();

}

}catch(SQLException e){

e.printStackTrace();

}

try{

if (preparedstament!=null){

preparedstament.close();

}

}catch(SQLException e){

e.printStackTrace();

}

try{

if (resultset!=null){

resultset.close();

}

}catch(SQLException e){

e.printStackTrace();

}

return stus;

}

}

顯示信息的跳轉頁面:students.jsp

List stus=(List)request.getAttribute("students");

%>

flow_idTypeid_cardexam_cardstudent_nameLocationGrade

for(student stu:stus){

%>

}

%>

運行后顯示:

wx搜索“程序員考拉”,專注java領域,一個伴你成長的公眾號!

總結

以上是生活随笔為你收集整理的java mvc设计_javaweb之MVC设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。