Java Web Application Development (PRJ301)
Vietnamese title: Phát triển ứng dụng Java web
Credits: 3
Prerequisites: DBI202, PRO192

Description:
By the end of this course Students will be able to:
a) Knowledge: (what will students know?)
• Understand the core technologies of Java web programming:
- Servlet and JSP
- Scope of sharing state (session, application, request,page)
• Know how to develop and deploy your own websites using Java
• Understand and be able to apply MVC architecture for the web
- Learning how to apply JPA in websites using Java
• Learning how to apply AI in your own website using Java
b) Skills: (what will students be able to do?)
• Basic Web application development applying MVC Design Pattern using Servlet/Filter as Controller
• Creating a simple Web Application demo using JPA

Learning outcomes:
understand the basic web application structure and be able to deploy Web application
understand and be able to work with the basic features of Java web application
be able to work with JDBC
be able to use different languages in JSP
understand and be able to work with other server side objects in Java Web Application
understand and be able to work with simple MVC Architecture
be able to combine web front-end & back-end in the Java web application.
be able to use JPA in the Java web application.
be able to use AI in the Java web application.

Student tasks:
- Attend at least 80% of contact hours in order to be accepted to the final examination
- Actively participate in class activities
- Fulfil tasks given by intructor after class
- Use their own laptop in class only for learning purpose
- Read the textbook in advance
- Promptly access to the https://flm.fpt.edu.vn/ for up-to-date course information

Tools:
Web server application :Tomcat 9 or higher
IDE: Netbeans 13 or higher (as defined by the subject leader)
Java EE: 1.8 or higher
MS SQL Server 2019 or higher

Materials:
description: Professional Java® for Web Applications
author: Nicholas S. Williams
publisher: Wrox
edition: 1st edition
isbn: 978-1118656464
note: http://library.books24x7.com/toc.aspx?bookid=62587
description: Article 1: http://docs.oracle.com/javase/tutorial/JDBC
description: Article 2: https://docs.oracle.com/cd/B14099_19/web.1012/b14017/filters.htm
description: Session 3 Guide to Using Prompt Engineering Effectively with Java Web
description: Session 8 AI_Netbeans24
description: Session 15 Using a Database Query Agent in Java Web Applications

Assessments:
category: Assignment
type: on-going
weight: 30.0
duration: Option 1: 5 weeks; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO7, LO8, LO9
no_question: Option 1: Project; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 1; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Front end , back end development
note: -Teacher gives a requirements
-Student implements a web application based on the requirements. The application must consider the aspects of uses (not only back-end but also front-end)
- Follow assignment evaluation rubric to grade assignment
category: Practical Exam
type: on-going
weight: 30.0
duration: Option 1: 85 minutes; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO01, LO02, LO03, LO04, LO05, LO06,
no_question: Option 1: Practical Exam; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 3; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Basic features of Java Web
category: Progress Test 1
type: on-going
weight: 5.0
duration: Option 1: 30 mins; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO1, LO2
no_question: Option 1: Multiple Choice; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 20; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Basic features of Java Web
category: Progress Test 2
type: on-going
weight: 5.0
duration: Option 1: 30 mins; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: s
no_question: Option 1: Multiple Choice; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 20; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Basic features of Java Web
category: Workshop 1
type: on-going
weight: 5.0
duration: Option 1: 1 week; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO1, LO2
no_question: Option 1: Home work; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 1; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Basic features of Java Web
note: -Teacher gives a short requirements
-Student implements a web application based on the requirements
category: Workshop 2
type: on-going
weight: 5.0
duration: Option 1: 1 week; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO3, LO4
no_question: Option 1: Home work; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 1; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Basic features of Java Web
note: -Teacher gives a short requirements
-Student implements a web application based on the requirements
category: Final Exam
type: Final exam
weight: 20.0
duration: 60 minute
question_type: LO001, LO2, LO03, LO04, LO05, LO06
no_question: Multiple Choice
knowledge_and_skill: 50
grading_guide: Basic features of Java Web

Schedule:
session: Introduction to java web application
+ The core and basic of Java web server technologies
+ Web design vs server technologies
learning_outcomes: IT
materials: PRJ301
session: Setup Environment :
JDK: 1.8 or higher
Servlet container: Tomcat 10 or higher
Intergrate Netbeans 13 with the web container.
learning_outcomes: TU
session: Creating/Building the first application:
Learn to create Servlet
Guide to Using Prompt Engineering Effectively with Java Web
learning_outcomes: TU
session: Learn to create JSP
Deploy the web application
learning_outcomes: TU
session: Wiritting the First Servlet
Create a servlet
+ Create a servlet class
+ Configure servlet for deployment
learning_outcomes: TU
session: Work with request and response objects
+ Understanding DoGet and DoPost
learning_outcomes: TU
session: + Using parameter to accept form submition & query string
+ Response text content to client
learning_outcomes: TU
session: Using AI in Netbeans24
learning_outcomes: TU
session: Practice Classwork 1
learning_outcomes: TU
session: Practice Classwork 1
learning_outcomes: TU
session: Web Application Interacting with Database
+ JDBC Introduction
+ Types of JDBC Drivers
learning_outcomes: IT
session: Web Application Interacting with Database
+ JDBC Introduction
+ Types of JDBC Drivers
learning_outcomes: TU
session: + JDBC Basics: Processing SQL Statements
learning_outcomes: TU
session: + JDBC Basics: Processing SQL Statements
learning_outcomes: TU
session: JDBC Basics: Processing SQL Statements
Use a Database Query Agent in Java Web Applications
learning_outcomes: TU
session: Implement CRUD application using MS SQL Server 2019 or version higher
learning_outcomes: TU
session: Implement CRUD application using MS SQL Server 2019 or version higher
learning_outcomes: TU
session: Implement CRUD application using MS SQL Server 2019 or version higher
learning_outcomes: TU
session: Practice Classwork 2
learning_outcomes: TU
session: Practice Classwork 2
learning_outcomes: TU
session: Using JSP to display content
Create JSP?
+ Why use JSP?
3 Ways to use JSP
+ Only HTML in a JSP file
+ Only JSP code in a JSP file
learning_outcomes: TU
session: +A mixture of JSP code with HTML text in A JSP file Using the Implicit variables in A JSP
learning_outcomes: TU
session: Configuring JSP properties in the web.xml
learning_outcomes: TU
session: Combining JSP and Servlet
learning_outcomes: TU
session: Practice Classwork 3
learning_outcomes: TU
session: Practice Classwork 3
learning_outcomes: TU
session: Introduction to MVC Architecture
+ General of Java Application Design
learning_outcomes: IT
session: Introduction to MVC Architecture
+ General of Java Application Design
learning_outcomes: IT
session: + MVC Pattern
+ How to apply MVC in Java Web Application
learning_outcomes: TU
session: + MVC Pattern
+ How to apply MVC in Java Web Application
learning_outcomes: TU
session: Practice
learning_outcomes: TU
session: Practice
learning_outcomes: TU
session: Maintaining state using session and cookie
+ Explain why session is nessesary
+ How session and cookie work
learning_outcomes: TU
session: + Store and Retreive data to session and cookie
learning_outcomes: TU
session: Practice Classwork 4
learning_outcomes: TU
session: Practice Classwork 4
learning_outcomes: TU
session: Expression Language
What and Why use Expression Language
How to write with the EL syntax
+ Immediate evaluation , [ ] operator,array, Arithmetic EL,Relational EL, Static Field
learning_outcomes: TU
session: + EL functions
+ Collections
How to use scoped variables in EL expressions
+ pageContext
learning_outcomes: TU
session: + sessionScope
+ applicationScope
Implicit Variables in EL
learning_outcomes: TU
session: Practice Classwork 5
learning_outcomes: TU
session: Using JPA
+ Guide to work with persistance connect to DB
learning_outcomes: TU
session: Practice Classwork 6
learning_outcomes: TU
session: Using Custom tag
+ Guide to create a simple Web Application demo using JPA
learning_outcomes: TU
session: Practice Classwork 7
learning_outcomes: TU
session: Introduction to Filter
+ Understand the purpose of Filter
learning_outcomes: TU
session: + Create, Declaring and Mapping Filter
learning_outcomes: TU
session: Forward and Redirect to another servlet
Using init parameters
Building a Coding AI Agent in a Java Web Application (Servlet-Based)
learning_outcomes: TU
session: Practice Classwork 8
learning_outcomes: TU
session: Introduction to Event Listener
+ ServletContextEvent
+ HttpSessionEvent
+ ServletRequestEvent
learning_outcomes: TU
session: + ServletContext AttributeEvent
+ HttpSessionBindingEvent
+ ServletRequestAttributeEvent
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU
session: Assignment Evaluation
Course Summary for Final Exam
learning_outcomes: TU