21xrx.com
2025-03-25 03:45:29 Tuesday
文章检索 我的文章 写文章
我是一名Java开发工程师
2023-06-14 16:18:33 深夜i     7     0

我是一名Java开发工程师,经常听到JavaEE和JavaWeb这两个名词,也经常有人问我这两个到底有什么区别。今天我来给大家科普一下。

JavaEE(Java Enterprise Edition)是以Java SE为基础,提供了更多企业级应用扩展的规范。JavaEE规范主要包括几个方面:Web、EJB、JPA、JMS等。其中,Web是最常用的,我们通常说的JavaWeb实际上就是JavaEE中的Web规范。

JavaWeb是指基于Java语言编写Web应用的技术,是Java开发人员进行Web开发的必备技能。主要包含以下几个方面:Servlet、JSP、EL表达式、Web应用的部署等。

JavaEE面向的是企业级应用,需要对系统的高可靠性、高并发性、高可扩展性、可维护性等方面进行考虑。而JavaWeb则是以实现Web应用为目标,面向的是Web开发者。

下面举个例子,我们想要实现一个简单的注册登录功能,并使用JDBC连接MySQL进行数据存储。其中,JavaEE中使用的是JPA规范,JavaWeb中使用的是Servlet和JSP。

JavaEE代码示例:

@Entity
@Table(name = "user")
public class User {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 private String username;
 private String password;
 // getter和setter方法省略
}
@Stateless
public class UserService {
 @PersistenceContext
 private EntityManager em;
 
 public void save(User user) {
  em.persist(user);
 }
}

 
  DB Connection
 
 
  jdbc/testdb
 
 
  javax.sql.DataSource
 
 
  Container
 

 
  javax.faces.PROJECT_STAGE
 
 
  Production
 

 
  TestServlet
 
 
  com.example.TestServlet
 
 
  
  message
 
  
  Hello, world!
 
 

<% request.setCharacterEncoding("UTF-8"); %>

JavaWeb代码示例:

public class User
 private int id;
 private String username;
 private String password;
 // getter和setter方法省略
public class UserDao {
 private static final String URL = "jdbc:mysql://localhost:3306/test";
 private static final String USERNAME = "root";
 private static final String PASSWORD = "123456";
 
 public void save(User user) throws SQLException {
  Connection conn = null;
  PreparedStatement stmt = null;
  try {
   conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
   String sql = "INSERT INTO user (username, password) VALUES (?, ?)";
   stmt = conn.prepareStatement(sql);
   stmt.setString(1, user.getUsername());
   stmt.setString(2, user.getPassword());
   stmt.executeUpdate();
  } finally {
   if (stmt != null) {
    stmt.close();
   }
   if (conn != null) {
    conn.close();
   }
  }
 }
}
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
 private UserService userService = new UserService();
 
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  String username = req.getParameter("username");
  String password = req.getParameter("password");
  User user = new User();
  user.setUsername(username);
  user.setPassword(password);
  try {
   userDao.save(user);
   resp.getWriter().println("注册成功!");
  } catch (SQLException e) {
   e.printStackTrace();
   resp.getWriter().println("注册失败!");
  }
 }
}

通过上面的代码示例,我们可以看出JavaEE和JavaWeb之间的差别。JavaEE是一种规范,提供了许多的标准和API,用于开发更为可靠、高效的企业应用系统;而JavaWeb则是一种技术,其目标是实现Web应用,主要使用一些常用的技术和框架,如Servlet、JSP、Struts、Spring等,这些技术和框架都是基于JavaEE规范而设计的。在开发实际应用时,我们可以根据需求来选择使用JavaEE或JavaWeb。

  
  

评论区