21xrx.com
2024-11-25 22:42:57 Monday
登录
文章检索 我的文章 写文章
我是一名Java开发工程师
2023-06-11 08:21:49 深夜i     --     --

我是一名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。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复